{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "pPzRzwg7bP8J"
   },
   "source": [
    "In this recipe we'll look at methods for outlier detection. We'll go through an example of outlier detection in a time-series with [Python Outlier Detection](https://pyod.readthedocs.io/en/latest/) (pyOD), a toolbox for outlier detection that implements many state-of-the-art methods and viualization. We'll apply an autoencoder for a similarity-based approach and then an online learning approach for an approach suitable for finding events in streams of data. The streams of data are timeseries of KPIs or CPU performance indicators provided with the [DONUT outlier detector](https://github.com/haowen-xu/donut).\n",
    "\n",
    "Outlier detection is important in many domains including \n",
    "* network security, \n",
    "* finance, \n",
    "* traffic, \n",
    "* social media, \n",
    "* machine learning model performance monitoring, or \n",
    "* in surveillance.\n",
    "\n",
    "A host of algorithms have been proposed for outlier detection in these domains. The most prominent algorithms inlude k-Nearest Neighbors (kNN), local outlier factors (LOF), and the isolation forest, and more recently autoencoders, long short-term memory (LSTM), and generative adversarial networks (GANs). \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 212
    },
    "colab_type": "code",
    "id": "q_dgW4hzbQ-4",
    "outputId": "29b79160-8438-4aac-94be-50b6776f4d8c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "--2020-09-21 11:32:28--  https://raw.githubusercontent.com/haowen-xu/donut/master/sample_data/cpu4.csv\n",
      "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.16.133\n",
      "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.16.133|:443... connected.\n",
      "HTTP request sent, awaiting response... 200 OK\n",
      "Length: 463050 (452K) [text/plain]\n",
      "Saving to: ‘cpu4.csv’\n",
      "\n",
      "cpu4.csv            100%[===================>] 452.20K  --.-KB/s    in 0.1s    \n",
      "\n",
      "2020-09-21 11:32:28 (4.04 MB/s) - ‘cpu4.csv’ saved [463050/463050]\n",
      "\n"
     ]
    }
   ],
   "source": [
    "!wget https://raw.githubusercontent.com/haowen-xu/donut/master/sample_data/cpu4.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "t8WuddIg4caJ"
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "JEUCc_tL4eS1"
   },
   "outputs": [],
   "source": [
    "cpu_data = pd.read_csv('cpu4.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 197
    },
    "colab_type": "code",
    "id": "9RhPGKZLYqdy",
    "outputId": "b9bcf363-0be2-40dd-e03f-1eb74240ff04"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>timestamp</th>\n",
       "      <th>value</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1469376000</td>\n",
       "      <td>0.847300</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1469376300</td>\n",
       "      <td>-0.036137</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1469376600</td>\n",
       "      <td>0.074292</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1469376900</td>\n",
       "      <td>0.074292</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1469377200</td>\n",
       "      <td>-0.036137</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    timestamp     value  label\n",
       "0  1469376000  0.847300      0\n",
       "1  1469376300 -0.036137      0\n",
       "2  1469376600  0.074292      0\n",
       "3  1469376900  0.074292      0\n",
       "4  1469377200 -0.036137      0"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cpu_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "zQQRgzZwY2pk"
   },
   "outputs": [],
   "source": [
    "from datetime import datetime\n",
    "\n",
    "\n",
    "cpu_data['datetime'] = cpu_data.timestamp.astype(int).apply(datetime.fromtimestamp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 197
    },
    "colab_type": "code",
    "id": "vh-3zyzpZC31",
    "outputId": "75b0d2a4-02d5-4936-f2e1-59020dd0e05d"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>timestamp</th>\n",
       "      <th>value</th>\n",
       "      <th>label</th>\n",
       "      <th>datetime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1469376000</td>\n",
       "      <td>0.847300</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-07-24 17:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1469376300</td>\n",
       "      <td>-0.036137</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-07-24 17:05:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1469376600</td>\n",
       "      <td>0.074292</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-07-24 17:10:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1469376900</td>\n",
       "      <td>0.074292</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-07-24 17:15:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1469377200</td>\n",
       "      <td>-0.036137</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-07-24 17:20:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    timestamp     value  label            datetime\n",
       "0  1469376000  0.847300      0 2016-07-24 17:00:00\n",
       "1  1469376300 -0.036137      0 2016-07-24 17:05:00\n",
       "2  1469376600  0.074292      0 2016-07-24 17:10:00\n",
       "3  1469376900  0.074292      0 2016-07-24 17:15:00\n",
       "4  1469377200 -0.036137      0 2016-07-24 17:20:00"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cpu_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 312
    },
    "colab_type": "code",
    "id": "dtAhDbQEZWSZ",
    "outputId": "b9d286f7-8401-4d6a-975e-908dda401f70"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe6a226b518>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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73+PRx99dLCbedTgjzEApNNppNNpfOELX0BXVxcmTpyI733ve3jggQcAHJvr7YEHHsC6devQ2dmJlpaWsu+nTZsG4Njs+0AjljXHt6wBYnlzvMubYRtzumHDBnziE5/AwYMHsXXrVqxZswY33ngjTjrpJFRVVQEA7rvvPpx++umYPn36MXu6GAhs374dN9xwA/bv34+3334bTzzxBM477zyk02mcffbZqKqqwtatW7Fnzx4sWrTomHvXfv/37duH7du348knn8T73/9+TJkyBU888QTefPNN3HfffQCAX/ziF1i0aBEaGxsHudWVxfbt23HnnXdixIgRmDlzJkaPHo01a9Zg4sSJuPXWWzFr1izMmjULX/3qV7FixYpjag688cYbuPHGG9HW1obW1lb88pe/xC233IIpU6YgnU5D13X87Gc/w4wZMzB37txjqu8DjVjWxLIGiOVNLG+GsXJ6//334/zzz8enP/1pTJ48GevWrcOYMWMwa9Ys6LqOrVu3YtWqVfi3f/s3AEBXVxeSyeQxHUB8tLBp0ybouo5///d/x+LFi/HXv/4Vzz33HK666iokEgnU1tait7cX69evx7hx49DU1HRMudz8/t95551YvHgxHn30Uaxduxb/8A//gM2bN+Pqq6/GnDlzMGPGDKxatQoAMH/+/EFudWXgj+ODDz6IJ554AiNGjEBjYyOam5sxefJkLF68GDU1NTBNE5MmTcLq1avR1NSEyZMnD3bTK4ZHH30U8+bNw2c+8xmcdtppWLNmDRKJBBYvXgxd17F792787ne/w+233w5d19He3o6qqqpY1hwBYllz/MoaIJY3QCxvfAwLtz7NbL1161ZYlgUAGD16NLZt24aRI0cG3z/99NNYunQpAOArX/kKPve5z8E0zeMqiLxSWL9+Pdra2gAAtbW1uP3227Fy5Ups374dAKDrOhYsWIDx48fj17/+NQAcU4uktP933HEHHn74YRw6dAh79+7F2rVrAbjztLGxEQsXLhzM5lYU/jhaloV/+qd/Qm1tLV544QU4joNp06ahp6cHTz/9NAzDQGtrKxobGzF37txBbnVlsXHjxkAGqaqKTCaDsWPHBt+/+OKLWLx4MVKpFG6//XbceOONsaw5QsSy5viVNUAsb4BY3vgYFr3p7OwE4HKb+YP2pS99CWeeeSYcx8H+/fuRSCRgGEZQZvPmzVi3bh2uvfZaGIaBu+++G4ZhDGY3hh38d33NNdfg8ccfD+J/mpqasGLFCnzrW98Kyo4dOxannnoqTjvtNDiOMyjtrTR4/f/IRz6C7373u7jtttuwdu1a3Hbbbbj88stRV1eHk08+eTCbXXGYpomFCxdi+fLlmDJlCnbv3o3nn38egCs87777btx2221Yvnw5Jk6ciLq6umMiDsqfx1/84hdx1llnwXEctLS0oKOjA6lUKuBa3LZtG5566im8733vQ3V1Ne69995Y1vQRsayJZY2PWN7E8gYY4m79F198EStWrMCWLVtw4YUXQlXV4GRVU1ODmpoaKIqCRx99FI7j4KqrrgpOD6tWrUI+n8c3vvENLFu2DIlEYjC7MuTx97//Hc899xzS6TTq6+sBuKfYQqGAhoYG7N27F6tXr8aFF14IQghGjx6NdevW4fTTT0c6nQYATJw4EbNmzRqWloy+9r+5uRmPP/44rr76alxyySVobm7GNddcgyuuuGJYnmBp/QfcA2EikcC4ceMAACNHjsSWLVtw4MABzJgxA2PHjsU555yDMWPG4JprrsGyZcugKMqwmwOs8XccB1VVVRgxYgQURcHq1auxb98+rFixIhjnNWvWoKenB9/61rdw6aWXxrJGgHXr1uG1114L3itwfMmavvb/WJM1AP0dAMePvGHNgVjeFDEkldMdO3bg61//Op588kkQQnDFFVdg5syZgVU0rKQCwD333IMPfehDqK6uxhe/+EXs2bMHN910Ez784Q9HNtoY5TBNE1/4whewatUq6LqOBx98EBMmTMC4ceNQKBSCiT937lx85zvfwfjx4zF9+nRs2LABBw8exLJly4K6hpuAAPrf/wsuuABVVVWYMGECGhoaBrk3fQev/5ZlQdejbHPpdBqFQgGvvfYa8vk8Zs2ahdraWkycOHFYXswQ9V/TtEj5n//857j44osxZswY3HLLLdiyZQtuueUWfPCDH4xssjHKkcvlcNttt+HJJ59EVVUV7r33XqRSKZx00kkwTTOw/hyrsqa//R/usgYQv4NSRetYkzei/pfK2+NZ3gw5ntNsNouvfe1rWLRoEe6++2786le/wo4dOwAg2CgKhQK+//3vY8aMGVi6dCl27dqF3//+93j77bexbNky3HDDDYPZhWGFnp4eEELwwx/+EPX19fjiF7+I6upqAEAikYBpmvjGN76BpUuX4vbbb8dvfvMbPPLII3j77bexfPnywW18BRD3n91/Xddhmia++c1v4sQTT8QHPvABAMAZZ5yBN998E+PHjx/MplcEMv2/6667MHXqVFx77bXYuXMnfvvb3+InP/kJLr/8cqxYsWKQezB8sHfvXhBCgljRlStX4o477sCSJUvQ0NBwzK+1473/gNw7OJbljUz/Y3njYsgop0899RSampowa9Ys/OxnPws+37p1KxYsWADANflv374dn/zkJ7FkyRIsXboUhBD09PSgtrYW9913H+rq6garC8MGTz31FJqbmzFz5ky0t7dj586d+Nvf/oauri48/PDDaGxsxBtvvIELLrgAV1xxBZYsWYKFCxdixIgRWLx4MV5++WXMnz9/2Fql4/73rf9nnXUWLrroIgBubFwymcTHP/7xYetSPJL+X3LJJVBVFe3t7ZgxYwb+67/+K5Y1Egi/65aWFrz00kvBd9OmTUMqlcIvfvELfPzjH8eVV16Js84665hda8dj/4G+v4Ozzz77mJU3Mv1funRpLG8AKGSQI4kPHjyIm2++GalUCvX19Zg8eTI++tGPYtSoUQCAH/zgB9i1axe++c1vAnAtHQcOHAgIaDOZDHp7e9Hc3DxofRgu8N91VVUV6urqMGXKFHzyk5/Eiy++iEcffRSvvvoqvvzlL6O9vR233347/vSnP0FV1eDd2rZd5uYcToj737/+D3fKnkqMf2dn57B0Jw40aO96xYoV+NSnPoVJkybh3HPPxZo1azB79mx8+9vfxjPPPIO2trYg1vBYXGvHU/+B/r+DY1He9HUOHM/yZtBjTjdu3AjbtnH33XfjpJNOwoYNG/DEE0/gggsuAODmFW5tbcXcuXORSqVgGAYaGxvhOA4IIUilUqipqRnMLgwb+O/6rrvuwowZM/DKK6/gscceww033ICNGzfigx/8IM4880xMnz4dr7/+Onbs2IELLrggeNfDXVjG/e9f/4er5cJHJcbfT/ARg4/Sd/3qq6/ixRdfxFe+8hXs2rULa9euxRlnnIFrr70Wr7zyCmpqajBv3jwQQo7JtXa89R/o/zs41uSNbP9jeeNi0Ed/w4YNeOuttwAgsJq+8cYbWLduHQA37uvgwYNlgcKqqg77yTvQKH3XH/vYx7Bp0yZs3fr/27v/mKjrB47jTzoOFC9ggpoisVUY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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "# Use seaborn style defaults and set the default figure size\n",
    "sns.set(rc={'figure.figsize':(11, 4)})\n",
    "\n",
    "time_data = cpu_data.set_index('datetime')\n",
    "time_data.loc[time_data['label'] == 1.0, 'value'].plot(linewidth=0.5, marker='o', linestyle='')\n",
    "time_data.loc[time_data['label'] == 0.0, 'value'].plot(linewidth=0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 176
    },
    "colab_type": "code",
    "id": "uMoWyK0gYZNy",
    "outputId": "c913cff0-e83d-4481-f677-85428539fc57"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 17568 entries, 0 to 17567\n",
      "Data columns (total 4 columns):\n",
      " #   Column     Non-Null Count  Dtype         \n",
      "---  ------     --------------  -----         \n",
      " 0   timestamp  17568 non-null  int64         \n",
      " 1   value      17568 non-null  float64       \n",
      " 2   label      17568 non-null  int64         \n",
      " 3   datetime   17568 non-null  datetime64[ns]\n",
      "dtypes: datetime64[ns](1), float64(1), int64(2)\n",
      "memory usage: 549.1 KB\n"
     ]
    }
   ],
   "source": [
    "cpu_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "ka_bHmV44j7l",
    "outputId": "79ff606c-cdf4-4465-cb9c-f7f19670d2fb"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "17568"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(cpu_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 301
    },
    "colab_type": "code",
    "id": "alrasXy_4l8l",
    "outputId": "b3f8c898-2ea1-4906-e836-aa7a87531dcc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting pyOD\n",
      "  Downloading pyod-0.8.3.tar.gz (96 kB)\n",
      "\u001b[K     |████████████████████████████████| 96 kB 2.5 MB/s eta 0:00:011\n",
      "\u001b[?25hCollecting combo\n",
      "  Downloading combo-0.1.1.tar.gz (37 kB)\n",
      "Requirement already satisfied: joblib in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (0.16.0)\n",
      "Requirement already satisfied: matplotlib in /Users/ben/.local/lib/python3.6/site-packages (from pyOD) (3.2.2)\n",
      "Requirement already satisfied: numpy>=1.13 in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (1.19.1)\n",
      "Requirement already satisfied: numba>=0.35 in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (0.50.1)\n",
      "Requirement already satisfied: pandas>=0.25 in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (1.1.0)\n",
      "Requirement already satisfied: scipy>=0.19.1 in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (1.5.2)\n",
      "Requirement already satisfied: scikit_learn>=0.19.1 in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (0.22.2.post1)\n",
      "Requirement already satisfied: six in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (1.15.0)\n",
      "Requirement already satisfied: statsmodels in /Users/ben/anaconda3/lib/python3.6/site-packages (from pyOD) (0.9.0)\n",
      "Collecting suod\n",
      "  Downloading suod-0.0.4.tar.gz (2.1 MB)\n",
      "\u001b[K     |████████████████████████████████| 2.1 MB 3.3 MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: cycler>=0.10 in /Users/ben/anaconda3/lib/python3.6/site-packages (from matplotlib->pyOD) (0.10.0)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/ben/anaconda3/lib/python3.6/site-packages (from matplotlib->pyOD) (1.0.1)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /Users/ben/anaconda3/lib/python3.6/site-packages (from matplotlib->pyOD) (2.7.5)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /Users/ben/anaconda3/lib/python3.6/site-packages (from matplotlib->pyOD) (2.4.7)\n",
      "Requirement already satisfied: setuptools in /Users/ben/anaconda3/lib/python3.6/site-packages (from numba>=0.35->pyOD) (49.6.0.post20200814)\n",
      "Requirement already satisfied: llvmlite<0.34,>=0.33.0.dev0 in /Users/ben/anaconda3/lib/python3.6/site-packages (from numba>=0.35->pyOD) (0.33.0)\n",
      "Requirement already satisfied: pytz>=2017.2 in /Users/ben/anaconda3/lib/python3.6/site-packages (from pandas>=0.25->pyOD) (2018.7)\n",
      "Building wheels for collected packages: pyOD, combo, suod\n",
      "  Building wheel for pyOD (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for pyOD: filename=pyod-0.8.3-py3-none-any.whl size=110347 sha256=dea63263c99ff3a51477ca5d0e2b841d158a34236c210496d539f33e3e86c625\n",
      "  Stored in directory: /Users/ben/Library/Caches/pip/wheels/36/e8/e9/8fb0fbd5ec01e840a6e32ca50329a7638b1aba32aa9d36fbe8\n",
      "  Building wheel for combo (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for combo: filename=combo-0.1.1-py3-none-any.whl size=42113 sha256=d02fd1437e6480102d9f7f9e24f6ae775de05608b9d5c71daaa681d693ca8af0\n",
      "  Stored in directory: /Users/ben/Library/Caches/pip/wheels/66/36/30/c526ec2ea927c0b9ad94aeccd4f5820d258a1dc0b85953913f\n",
      "  Building wheel for suod (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for suod: filename=suod-0.0.4-py3-none-any.whl size=2167157 sha256=85b4bfe7bda817cdcda108caeba5b19dfc61457fa7891f9e009f7635ee8b8f60\n",
      "  Stored in directory: /Users/ben/Library/Caches/pip/wheels/21/44/a8/ba508e4a93b9554e081c88cd120b027b28a10bef454ca07b5d\n",
      "Successfully built pyOD combo suod\n",
      "Installing collected packages: combo, suod, pyOD\n",
      "Successfully installed combo-0.1.1 pyOD-0.8.3 suod-0.0.4\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "pip install pyOD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 298
    },
    "colab_type": "code",
    "id": "Mjw_wbg06c0h",
    "outputId": "9de2ebaa-bde1-44f0-a038-a1e92717ee1a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe69fcd36d8>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cpu_data.timestamp.hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 285
    },
    "colab_type": "code",
    "id": "AUdhQACYI3Ky",
    "outputId": "3908ee55-2e52-4ff9-95b0-342d117cceca"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe6a2a8d3c8>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cpu_data.value.hist(bins=50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 284
    },
    "colab_type": "code",
    "id": "KNWIfEF06hsa",
    "outputId": "bbc31903-c2af-4875-ddd2-abede7a460d5"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAo0AAAEJCAYAAADxZB0eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxTdb4//tdZcrKnadO0hbbs+44iICi4gCiCCqIiKKPO1XGcO36v9852x3GusziLj7lXr/4cZ3QcZxHmggyKuCAq4lb2nbLvLd33pNlzzu+P0NhC27QlbVLyej4ePiQ5yck7/WR55XM+5/MRNE3TQERERETUDjHRBRARERFR8mNoJCIiIqKYGBqJiIiIKCaGRiIiIiKKiaGRiIiIiGJiaCQiIiKimBgaiahXuP/++/HHP/7xouv//Oc/49FHH23zfi+++CJ+/vOfd2dpAIDhw4ejpqamW+9///33Y/369Z3a75o1a/Ctb32ry3URETVhaCSiXmHp0qVYs2bNRdevWrUK9913XwIqIiJKLQyNRNQrzJo1Cx6PBzt27Ihet23bNmiahunTp+MPf/gDFi1ahPnz52PWrFn46KOPLtrHDTfcgP3797d6edeuXViyZAkWLFiAhQsX4tNPPwUAVFZW4qGHHsKCBQuwYMECPP/8823W+Pzzz2PBggW4/fbbo/d/8MEHsXLlyuhtXn75ZfzqV79qcx8ejwc/+MEPcPfdd2POnDlYuHAhTp48Gd3+0UcfYeHChZg7dy5efvnl6PVt1U9EFC9yogsgIuoIWZZxzz33YPXq1Zg0aRIAYOXKlViyZAlKSkpQUFCAN954AwaDAe+99x5eeOEFzJ49u0P7rq+vx3/+53/itddeQ15eHsrLy3H33Xdj+PDheOutt5CXl4c///nP8Hg8ePLJJ+FyuWC1Wi/aT15eHn7+85/j6NGjuP/++/HBBx9g6dKl+MMf/oB77rkHqqrizTffxJ/+9Kc2a/n8889hs9mwatUqAMBPf/pTLF++HE899RQAoLGxEatWrYLP58Ndd92FUaNGYcKECW3WT0QULwyNRNRr3H333bj11lvhdrsRCoXw5Zdf4umnn4bVasVvf/tbrFu3DmfOnMHevXvR2NjY4f3u2bMHlZWV+M53vhO9ThAEHDlyBNdeey0eeeQRlJaWYtq0afiP//iPVgMjANx7770AgGHDhmHw4MHYvXs3rr/+evzyl7/E4cOHUV5ejry8PAwaNKjNWm6++Wbk5+fj73//O86cOYNt27Zh4sSJ0e2LFi2CLMuwWCyYM2cOCgoKAKDN+omI4oWhkYh6jaysLEybNg3vv/8+PB4P5syZA6vVisLCQjz22GN44IEHMH36dFx11VX42c9+1uo+NE2L/jsQCAAAwuEwBg8ejDfffDO6rby8HBkZGdDpdPjkk0+wefNmbNmyBXfddRdeeuklXHHFFRftWxS/HvGjaRpkWYYkSVi8eDFWr16NiooKLF68uN3nuGLFCqxatQpLly7F/PnzYbfbUVxcHN0uSdJFj9Fe/evWrWv38YiIOopjGomoV1myZAnWrVuHt99+G0uXLgUAbN++HWPGjMGDDz6IyZMn45NPPkE4HL7ovhkZGThw4ACAr3sXAWDChAk4c+YMtm/fDgA4dOgQ5syZg4qKCvzud7/D73//e8yaNQtPPvkkhgwZgtOnT7da21tvvQUAKCwsxJkzZzB+/HgAwF133YWPP/4YhYWFMQ+Zf/nll1iwYAHuuusuDBw4EBs3bmzxXN5++21omob6+np88MEHmDFjRrv1ExHFC3saiahXmTJlCn75y18iLS0tOmZv3rx52LBhA+bOnQudToerr74a9fX1cLvdLe77ve99D08//TRWrlyJ0aNHY/To0QAiYfKFF17As88+C7/fD03T8OyzzyI3Nxff+MY38KMf/Qjz5s2DoigYPnw45s2b12ptRUVFuOOOOyAIAv7nf/4HdrsdAOBwODBmzBgMHjwYOp2u3ef30EMP4ac//SnWrFkDSZIwevRoHD16NLrdarVi4cKF8Pl8uO+++zBlyhQAaLN+IqJ4EbTmx2qIiCjuampqsGjRIixfvhx9+vRJdDlERF3Cw9NERN1o1apVmDt3LpYtW8bASES9GnsaiYiIiCgm9jQSERERUUwMjUREREQUE0MjEREREcXE0EhEREREMSXFPI21tY1QVZ6P0xMcDguqq92xb0g9hm2SnNguyYdtknzYJsnnUtpEFAWkp5vb3J4UoVFVNYbGHsS/dfJhmyQntkvyYZskH7ZJ8umuNunw4Wm324158+a1WAO1yaFDh3DnnXdizpw5ePLJJxEKheJaJBERERElVodC4969e3Hvvfe2ud7q97//fTz1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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "markers = ['r--', 'b-^']\n",
    "\n",
    "def hist2d(X, by_col, n_bins=10, title=None):\n",
    "  '''plot two histograms against each other.\n",
    "\n",
    "  I am using line plots here. Alternatively, \n",
    "  we could be using hist() with opacity.\n",
    "  '''\n",
    "  bins = np.linspace(X.min(), X.max(), n_bins)\n",
    "  \n",
    "  vals = np.unique(by_col)\n",
    "  for marker, val in zip(markers, vals):\n",
    "    n, edges = np.histogram(X[by_col==val], bins=bins)\n",
    "    n = n / np.linalg.norm(n)\n",
    "    bin_centers = 0.5 * (edges[1:] + edges[:-1])\n",
    "    plt.plot(bin_centers, n, marker, alpha=0.8, label=val)\n",
    "\n",
    "  plt.legend(loc='upper right')\n",
    "  if title is not None:\n",
    "    plt.title(title)\n",
    "  plt.show()\n",
    "\n",
    "hist2d(cpu_data.value, cpu_data.label, n_bins=50, title='Values by label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 285
    },
    "colab_type": "code",
    "id": "2vNiaumu6nOg",
    "outputId": "cd13f413-c709-45c1-e21f-2737d76b894f"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe6a2e67978>"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cpu_data.label.hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "sf8QDQT84tDh"
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "76jY89kl5Ey4"
   },
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(cpu_data[['value']].values, cpu_data.label.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "ZIWSrsmq5tyM",
    "outputId": "6b3f654f-78c1-46ad-a41a-8b626eb1cc34"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4392, 1)"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "GEJNjf845Veg"
   },
   "outputs": [],
   "source": [
    "# simplest example from the docs: train kNN detector\n",
    "from pyod.models.knn import KNN\n",
    "clf_name = 'KNN'\n",
    "clf = KNN()\n",
    "clf.fit(X_train)\n",
    "\n",
    "# get the prediction labels and outlier scores of the training data\n",
    "y_train_pred = clf.labels_  # binary labels (0: inliers, 1: outliers)\n",
    "y_train_scores = clf.decision_scores_  # raw outlier scores\n",
    "\n",
    "# get the prediction on the test data\n",
    "y_test_pred = clf.predict(X_test)  # outlier labels (0 or 1)\n",
    "y_test_scores = clf.decision_function(X_test)  # outlier scores\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 123
    },
    "colab_type": "code",
    "id": "HpgN2buJ57jF",
    "outputId": "b311235d-8e3b-4486-e069-834febc77b4f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "On Training Data:\n",
      "KNN ROC:0.5064, precision @ rank n:0.2857\n",
      "\n",
      "On Test Data:\n",
      "KNN ROC:0.5085, precision @ rank n:0.3333\n"
     ]
    }
   ],
   "source": [
    "from pyod.utils.data import evaluate_print\n",
    "# evaluate and print the results\n",
    "print(\"\\nOn Training Data:\")\n",
    "evaluate_print(clf_name, y_train, y_train_scores)\n",
    "print(\"\\nOn Test Data:\")\n",
    "evaluate_print(clf_name, y_test, y_test_scores)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 284
    },
    "colab_type": "code",
    "id": "Dka3BmW8Jrgv",
    "outputId": "e9f14b76-21f1-48a2-bbfb-0f2e79cdef6e"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hist2d(X_test, y_test_pred, title='Predicted values by label')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "o6mQHdSSLJZl"
   },
   "source": [
    "Since this is prototype-based, it's not too surprising that this detector doesn't find any outlier: all points are similar to points shown before.\n",
    "\n",
    "Let's show only examples that are not outliers. Let's also package this up a bit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "hS0x4iCAML28",
    "outputId": "14bcb50e-d23e-4c6f-bd12-fa7cc74b5117"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(13024, 1)"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[y_train==0.0].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "275JLKW9MUO0",
    "outputId": "4b0eca24-275e-4568-9a6a-b6194bd83ec3"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(13176, 1)"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "ETYpFKpIMQVG",
    "outputId": "d6155590-6b15-40ec-c925-6bf5ecc8b509"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "152"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "q3DxasYkLIn1"
   },
   "outputs": [],
   "source": [
    "from pyod.utils.data import evaluate_print\n",
    "\n",
    "\n",
    "def test_outlier_detector(X_train, y_train,\n",
    "                          X_test, y_test, only_neg=True,\n",
    "                          basemethod=KNN()):\n",
    "  '''Test an outlier detection method on a dataset.\n",
    "  This function trains a model, get performance metrics of\n",
    "  the model, and plots a visualization.\n",
    "\n",
    "  Parameters:\n",
    "  -----------\n",
    "  X_train : training features\n",
    "  y_train : training labels\n",
    "  X_test : test features\n",
    "  y_test : test labels\n",
    "  only_neg : whether to use only normal (i.e. not outliers) for training\n",
    "  basemethod : the model to test\n",
    "  '''\n",
    "\n",
    "  clf = basemethod\n",
    "  if only_neg:\n",
    "    clf.fit(X_train[y_train==0.0], np.zeros(shape=((y_train==0.0).sum(), 1)))\n",
    "  else:\n",
    "    clf.fit(X_train, y_train)  # most algorithms ignore y\n",
    "\n",
    "  y_train_pred = clf.predict(X_train)  # labels_\n",
    "  y_train_scores = clf.decision_scores_\n",
    "\n",
    "  y_test_pred = clf.predict(X_test)\n",
    "  y_test_scores = clf.decision_function(X_test)\n",
    "\n",
    "  print(\"\\nOn Test Data:\")\n",
    "  evaluate_print(type(clf).__name__, y_test, y_test_scores)\n",
    "  hist2d(X_test, y_test_pred, title='Predicted values by label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 373
    },
    "colab_type": "code",
    "id": "K0YMv1aRQgcr",
    "outputId": "a87210cb-e398-42b9-e8d6-a1379d47c788"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ben/anaconda3/lib/python3.6/site-packages/pyod/models/base.py:349: UserWarning: y should not be presented in unsupervised learning.\n",
      "  \"y should not be presented in unsupervised learning.\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "On Test Data:\n",
      "KNN ROC:0.5085, precision @ rank n:0.3333\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_outlier_detector(X_train, y_train, X_test, y_test, only_neg=False, basemethod=KNN(n_neighbors=3, metric='hamming', method='mean', contamination=0.01))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "9Hxr2ZpKgRkY",
    "outputId": "59d201ae-cd30-4da4-c5d7-07d1aefc1eab"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'AutoEncoder'"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyod.models.auto_encoder import AutoEncoder\n",
    "\n",
    "type(AutoEncoder(hidden_neurons=[1], epochs=10)).__name__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "colab_type": "code",
    "id": "vhONsFwY65pE",
    "outputId": "b454f831-cf60-469e-8882-c47c880bbf3f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:133: The name tf.placeholder_with_default is deprecated. Please use tf.compat.v1.placeholder_with_default instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ben/anaconda3/lib/python3.6/site-packages/pyod/models/base.py:349: UserWarning: y should not be presented in unsupervised learning.\n",
      "  \"y should not be presented in unsupervised learning.\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_1 (Dense)              (None, 1)                 2         \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 1)                 0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 2         \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 1)                 0         \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 1)                 2         \n",
      "_________________________________________________________________\n",
      "dropout_3 (Dropout)          (None, 1)                 0         \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 1)                 2         \n",
      "=================================================================\n",
      "Total params: 8\n",
      "Trainable params: 8\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:973: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:2741: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.\n",
      "\n",
      "Train on 11858 samples, validate on 1318 samples\n",
      "Epoch 1/10\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:174: The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:181: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:190: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:199: The name tf.is_variable_initialized is deprecated. Please use tf.compat.v1.is_variable_initialized instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ben/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:206: The name tf.variables_initializer is deprecated. Please use tf.compat.v1.variables_initializer instead.\n",
      "\n",
      "11858/11858 [==============================] - 1s 100us/step - loss: 1.7602 - val_loss: 1.5906\n",
      "Epoch 2/10\n",
      "11858/11858 [==============================] - 1s 56us/step - loss: 1.4946 - val_loss: 1.4043\n",
      "Epoch 3/10\n",
      "11858/11858 [==============================] - 1s 49us/step - loss: 1.3427 - val_loss: 1.2858\n",
      "Epoch 4/10\n",
      "11858/11858 [==============================] - 1s 52us/step - loss: 1.2416 - val_loss: 1.2065\n",
      "Epoch 5/10\n",
      "11858/11858 [==============================] - 1s 47us/step - loss: 1.1759 - val_loss: 1.1525\n",
      "Epoch 6/10\n",
      "11858/11858 [==============================] - 1s 57us/step - loss: 1.1290 - val_loss: 1.1157\n",
      "Epoch 7/10\n",
      "11858/11858 [==============================] - 1s 75us/step - loss: 1.0958 - val_loss: 1.0888\n",
      "Epoch 8/10\n",
      "11858/11858 [==============================] - 2s 159us/step - loss: 1.0727 - val_loss: 1.0705\n",
      "Epoch 9/10\n",
      "11858/11858 [==============================] - 1s 94us/step - loss: 1.0557 - val_loss: 1.0563\n",
      "Epoch 10/10\n",
      "11858/11858 [==============================] - 1s 108us/step - loss: 1.0434 - val_loss: 1.0456\n",
      "\n",
      "On Test Data:\n",
      "AutoEncoder ROC:0.8176, precision @ rank n:0.0962\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_outlier_detector(\n",
    "    X_train, y_train, X_test, y_test, \n",
    "    only_neg=False, basemethod=AutoEncoder(hidden_neurons=[1], epochs=10)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "colab_type": "code",
    "id": "DWArQiAD7w_P",
    "outputId": "dc682aac-be2b-475e-a9c8-19d432b5515b"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ben/anaconda3/lib/python3.6/site-packages/pyod/models/base.py:349: UserWarning: y should not be presented in unsupervised learning.\n",
      "  \"y should not be presented in unsupervised learning.\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_5 (Dense)              (None, 1)                 2         \n",
      "_________________________________________________________________\n",
      "dropout_4 (Dropout)          (None, 1)                 0         \n",
      "_________________________________________________________________\n",
      "dense_6 (Dense)              (None, 1)                 2         \n",
      "_________________________________________________________________\n",
      "dropout_5 (Dropout)          (None, 1)                 0         \n",
      "_________________________________________________________________\n",
      "dense_7 (Dense)              (None, 1)                 2         \n",
      "_________________________________________________________________\n",
      "dropout_6 (Dropout)          (None, 1)                 0         \n",
      "_________________________________________________________________\n",
      "dense_8 (Dense)              (None, 1)                 2         \n",
      "=================================================================\n",
      "Total params: 8\n",
      "Trainable params: 8\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n",
      "Train on 11721 samples, validate on 1303 samples\n",
      "Epoch 1/10\n",
      "11721/11721 [==============================] - 2s 133us/step - loss: 1.8915 - val_loss: 1.6929\n",
      "Epoch 2/10\n",
      "11721/11721 [==============================] - 1s 78us/step - loss: 1.5995 - val_loss: 1.4644\n",
      "Epoch 3/10\n",
      "11721/11721 [==============================] - 1s 61us/step - loss: 1.4125 - val_loss: 1.3139\n",
      "Epoch 4/10\n",
      "11721/11721 [==============================] - 1s 70us/step - loss: 1.2898 - val_loss: 1.2150\n",
      "Epoch 5/10\n",
      "11721/11721 [==============================] - 1s 77us/step - loss: 1.2087 - val_loss: 1.1492\n",
      "Epoch 6/10\n",
      "11721/11721 [==============================] - 1s 66us/step - loss: 1.1541 - val_loss: 1.1041\n",
      "Epoch 7/10\n",
      "11721/11721 [==============================] - 1s 67us/step - loss: 1.1163 - val_loss: 1.0726\n",
      "Epoch 8/10\n",
      "11721/11721 [==============================] - 1s 57us/step - loss: 1.0896 - val_loss: 1.0497\n",
      "Epoch 9/10\n",
      "11721/11721 [==============================] - 1s 65us/step - loss: 1.0701 - val_loss: 1.0330\n",
      "Epoch 10/10\n",
      "11721/11721 [==============================] - 1s 59us/step - loss: 1.0557 - val_loss: 1.0205\n",
      "\n",
      "On Test Data:\n",
      "AutoEncoder ROC:0.8176, precision @ rank n:0.0962\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAo0AAAEJCAYAAADxZB0eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXiU9b3//+c9WzKTTJaZTDYCIWEJSxLZZBNQUVYRFzh1BbWKWq18a3vOT3u0x5722NPTfr9HWytWq8W6gFiVAi6AqKACguwJAQJkIZB93yaz3r8/IhHKEpYk92Tm/bguLzOZe+55TT7M5J3PdiuqqqoIIYQQQghxHjqtAwghhBBCiMAnRaMQQgghhOiUFI1CCCGEEKJTUjQKIYQQQohOSdEohBBCCCE6JUWjEEIIIYTolBSNQohLdvz4cYYOHcpNN93U8d/cuXN57733LvvcDz30EB988AEAN910E42Njec8tqmpiYULF170c6xdu5YFCxZccsZTPfnkk7z22mtdcq5zOX78OCNHjuz2x0+dOpWcnJyLOvcLL7zAr371q0uNJoToBQxaBxBC9G7h4eGsWrWq43ZFRQVz5swhMzOTIUOGdMlznHr+s2loaLjoIkcIIcTFkaJRCNGlEhISSE1NpaioiLy8PN577z2cTieRkZG8+eab/P3vf2f58uX4/X5iYmL4xS9+wYABA6ioqODJJ5+ksrKS5ORkampqOs6ZkZHB1q1bsdlsvPzyy6xcuRKDwUBqaiq//e1v+fnPf05bWxs33XQTH3zwAUVFRTz77LPU19fj8/lYsGAB8+fPB+APf/gDa9asISYmhtTU1LO+hp/97GcMGzaM+++/H4Dly5ezbds2/vd//5ff/OY37N27l5aWFlRV5b/+678YPXr0aY8/Ne8/3/7888956aWX8Hg8hIeH88QTTzBy5EiOHj3KU089hdvtRlVV5s+fz1133XVGNr/fz1NPPcX+/fsxGAw8/fTTXHHFFcycOZNf/OIXTJo0CYCnn36aQYMGcc8995z1NVZXV/Mf//Ef1NTUUFVVRZ8+fXj++eex2+0ALFu2jIMHD+J2u7nvvvs6fn7nyi+ECAGqEEJcopKSEnXEiBGnfW/Xrl3qlVdeqZaWlqrvv/++euWVV6pNTU2qqqrqtm3b1DvvvFNtbW1VVVVVv/rqK3XWrFmqqqrqI488oj733HOqqqpqUVGROmLECPX9999XVVVVBw8erNbU1KgbNmxQp0+frtbX16uqqqq/+c1v1CVLlpyWw+PxqLNnz1Zzc3NVVVXVxsZGddasWeru3bvVTz/9VJ09e7ba1NSkejwe9cEHH1TvvvvuM17X1q1b1Tlz5nTcnj9/vrp582Z1165d6mOPPab6fD5VVVX15ZdfVh966CFVVVX1iSeeUF999dXT8p508nZhYaE6Z84ctba2VlVVVc3Pz1evuuoqtaWlRf35z3+uvvzyy6qqqmplZaX6k5/8pON5Tv15Dx48WP3oo49UVVXVL7/8Ur366qtVl8ulLl26VF28eLGqqqra1NSkjh8/Xm1oaDhne73++usdz+f3+9UHHnhAfe2111RVVdVrr71WfeaZZ1RVVdXy8nJ1/Pjxan5+/nnz//GPf1T/8z//84yfpRAieEhPoxDispzs4QPw+XzExsby+9//nqSkJKC9ly0yMhKAjRs3UlxczO23397x+IaGBurr69myZQtPPPEEAKmpqYwbN+6M59q6dSszZ84kOjoagJ///OdA+1y9k4qKijh27Bj//u//flrGvLw8jh49yrRp0zryzJs3jzfffPOM5xk3bhwul4ucnBzMZjO1tbVMmDABRVGIjo7mnXfeoaSkhG3bthEREXHBP6vNmzdTWVnJvffe2/E9RVE4duwY06ZN44knnmDfvn1MmDCBp59+Gp3uzGnnUVFRzJ49G4DJkyejqioFBQXceuutvPjii9TW1rJ27VquueYaoqKizpnlnnvuYceOHSxdupSioiIOHz7MFVdc0XH/yTZKSEhg0qRJbN26Fb1ef878QojgJ0WjEOKy/POcxn9msVg6vvb7/dx0003827/9W8ftyspKoqOjURQFVVU7jjUYzvx40uv1KIrScbuxsfGMBTI+n4+oqKjTMlVXV2O1Wvn9739/2nPo9fqzZlYUhfnz57Nq1SqMRiPz589HURQ2btzIs88+y3333cd1111Heno6q1evPudrB3C73ae9/gkTJvD88893fK+srIz4+HiGDBnCunXr2LJlC1u3buXFF1/knXfeoV+/fqed758LSVVVMRqNREVFMXPmTFavXs2aNWt45plnzpvr97//Pfv27WPevHmMGzcOr9d72s/m1OdRVRWDwYDP5ztn/k8//fS8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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_outlier_detector(\n",
    "    X_train, y_train, X_test, y_test, \n",
    "    only_neg=True, basemethod=AutoEncoder(hidden_neurons=[1], epochs=10)\n",
    ")\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "56Ti9rNIPBAa"
   },
   "source": [
    "We didn't manage to get the KNN algorithm to work with our dataset, however, the autoencoder seems to work quite nicely, even though it incorrectly flags values in the upper range as well as in the lower range as we'd hoped."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 408
    },
    "colab_type": "code",
    "id": "wXtWoOO1heSq",
    "outputId": "6bc17ae6-bb6d-4c2d-82fb-689fdc36b74a"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ben/anaconda3/lib/python3.6/site-packages/pyod/models/base.py:349: UserWarning: y should not be presented in unsupervised learning.\n",
      "  \"y should not be presented in unsupervised learning.\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "On Test Data:\n",
      "LOF ROC:0.5088, precision @ rank n:1.0\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAo0AAAEJCAYAAADxZB0eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxU9b3/8deZmWQySybrJOybIFvCIiib4IoLoqjQulWstVRre2ltbx/aSq9tb+3t7/Y+rrbWtfVqbdVq1arUyqK4AsXiAgmrEBAEsk62SSaZ5ZzfH4EpSCABkkwyeT8fDx5wcs6ceed8E/LJ9/s932NYlmUhIiIiInIctkQHEBEREZHuT0WjiIiIiLRJRaOIiIiItElFo4iIiIi0SUWjiIiIiLRJRaOIiIiItElFo4ictM8//5zRo0czb968+J8rrriCF1544ZTPfeutt/LSSy8BMG/ePOrq6o55bH19PQsXLjzh91i2bBk33njjSWc83F133cXjjz/eIec6ls8//5yJEyd2+uvPP/98ioqKTujcDzzwAD/72c9ONpqI9ACORAcQkZ4tLS2NV155Jb5dVlbG3LlzKSgoYNSoUR3yHoefvzW1tbUnXOSIiMiJUdEoIh0qPz+fwYMHs3v3bjZv3swLL7xAKBTC6/Xyxz/+kb/85S88++yzmKZJZmYmP/7xjznttNMoKyvjrrvuory8nH79+lFVVRU/58iRI1m7di3Z2dk8+uij/PWvf8XhcDB48GB++ctf8sMf/pCmpibmzZvHSy+9xO7du7n33nupqakhFotx4403smDBAgB+/etfs3TpUjIzMxk8eHCrn8P3v/99xowZwy233ALAs88+y7p16/jf//1ffvGLX7BhwwYaGhqwLIuf//znTJo06YjXH573i9urVq3i4YcfJhKJkJaWxp133snEiRPZuXMnd999N+FwGMuyWLBgATfccMNR2UzT5O6772bTpk04HA6WLFnC+PHjueSSS/jxj3/M2WefDcCSJUsYMWIEN910U6ufY2VlJf/xH/9BVVUVFRUV9O/fn/vvv5+cnBwAnnnmGbZu3Uo4HObmm2+OX79j5ReRXsASETlJe/futSZMmHDExz766CPrzDPPtPbv32+9+OKL1plnnmnV19dblmVZ69ats66//nqrsbHRsizLeu+9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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pyod.models.lof import LOF\n",
    "\n",
    "test_outlier_detector(\n",
    "    X_train, y_train, X_test, y_test, \n",
    "    only_neg=False, basemethod=LOF(n_neighbors=2, contamination=0.01),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 373
    },
    "colab_type": "code",
    "id": "1IVwn10lPoE_",
    "outputId": "1ff91125-2b34-49da-bed2-3b5088f067b4"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ben/anaconda3/lib/python3.6/site-packages/pyod/models/base.py:349: UserWarning: y should not be presented in unsupervised learning.\n",
      "  \"y should not be presented in unsupervised learning.\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "On Test Data:\n",
      "IForest ROC:0.8598, precision @ rank n:0.0962\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAo0AAAEJCAYAAADxZB0eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde1yb5d0/8M+dc0IIhyQECgVKgQIFCrXag2091h5WW7X9TVdnp9Oqc8+6uT17OWf3uO2Z257teT26OXWeptNZ163q2k5tq3b10NZqFVroERqgpQVCEg4JhJDkvn9/YFlrD0AJ3En4vF8vXxKS3PcHroZ8c13XfV2CJEkSiIiIiIguQCF3ACIiIiKKfCwaiYiIiGhALBqJiIiIaEAsGomIiIhoQCwaiYiIiGhALBqJiIiIaEAsGonoojU2NqKwsBBLly7t/2/JkiVYv379sI99zz334PXXXwcALF26FJ2dned9rMfjwcqVK4d8js2bN+O222676Iyn+9GPfoTnn38+LMc6n8bGRpSXl4/486+++mpUVVUN6diPP/44fv7zn19sNCKKAiq5AxBRdNPpdNiwYUP/7ZaWFixevBjFxcUoKCgIyzlOP/65dHR0DLnIISKioWHRSERhZbPZkJWVhfr6ehw4cADr16+Hz+eD0WjEyy+/jL///e949dVXIYoiEhMT8ZOf/AQTJ05ES0sLfvSjH8HhcGDcuHFwuVz9x5w0aRJ27dqF5ORkPP3003jjjTegUqmQlZWFX//613jwwQfR09ODpUuX4vXXX0d9fT0eeeQRtLe3IxQK4bbbbsPy5csBAL/73e+wadMmJCYmIisr65w/ww9+8AMUFRXhzjvvBAC8+uqr2L17N/7v//4Pv/zlL7F37150dXVBkiT84he/wCWXXHLG80/P++Xb27Ztw1NPPYVAIACdTocHHngA5eXlOHr0KB566CH09vZCkiQsX74ct95661nZRFHEQw89hP3790OlUmHNmjWYMmUKFixYgJ/85CeYPXs2AGDNmjXIy8vDN77xjXP+jE6nE//1X/8Fl8uF1tZWpKen47HHHoPZbAYArF27FocOHUJvby/uuOOO/t/f+fIT0RggERFdpOPHj0tlZWVnfO/zzz+XLr30UunkyZPSa6+9Jl166aWSx+ORJEmSdu/eLa1YsULq7u6WJEmSPvzwQ2nhwoWSJEnSfffdJz366KOSJElSfX29VFZWJr322muSJElSfn6+5HK5pHfffVe67rrrpPb2dkmSJOmXv/yl9OSTT56RIxAISIsWLZKqq6slSZKkzs5OaeHChVJFRYX0zjvvSIsWLZI8Ho8UCASku+++W/r6179+1s+1a9cuafHixf23ly9fLu3YsUP6/PPPpe985ztSKBSSJEmSnn76aemee+6RJEmSHnjgAem55547I+8pp27X1dVJixcvltxutyRJknTkyBHp8ssvl7q6uqQHH3xQevrppyVJkiSHwyF973vf6z/P6b/v/Px86c0335QkSZI++OAD6YorrpD8fr/0wgsvSKtXr5YkSZI8Ho80Y8YMqaOj47zt9eKLL/afTxRF6a677pKef/55SZIk6aqrrpIefvhhSZIkqbm5WZoxY4Z05MiRC+b//e9/L/3sZz8763dJRLGDPY1ENCynevgAIBQKISkpCb/97W+RlpYGoK+XzWg0AgC2b9+OhoYG3HLLLf3P7+joQHt7O3bu3IkHHngAAJCVlYXp06efda5du3ZhwYIFSEhIAAA8+OCDAPrm6p1SX1+PY8eO4cc//vEZGQ8cOICjR49i3rx5/XmWLVuGl19++azzTJ8+HX6/H1VVVdDr9XC73Zg5cyYEQUBCQgL++te/4vjx49i9ezfi4uIG/bvasWMHHA4Hbr/99v7vCYKAY8eOYd68eXjggQewb98+zJw5E2vWrIFCcfa0c5PJhEWLFgEA5syZA0mSYLfbcdNNN+GJJ56A2+3G5s2bceWVV8JkMp03yze+8Q3s2bMHL7zwAurr61FTU4MpU6b033+qjWw2G2bPno1du3ZBqVSeNz8RxT4WjUQ0LF+e0/hlBoOh/2tRFLF06VL88Ic/7L/tcDiQkJAAQRAgSVL/Y1Wqs/88KZVKCILQf7uzs/OsC2RCoRBMJtMZmZxOJ+Lj4/Hb3/72jHMolcpzZhYEAcuXL8eGDRugVquxfPlyCIKA7du345FHHsEdd9yBa665Bjk5Odi4ceN5f3YA6O3tPePnnzlzJh577LH+7zU1NSElJQUFBQXYsmULdu7ciV27duGJJ57AX//6V2RmZp5xvC8XkpIkQa1Ww2QyYcGCBdi4cSM2bdqEhx9++IK5fvvb32Lfvn1YtmwZpk+fjmAweMbv5vTzSJIElUqFUCh03vzvvPPOBc9HRNGPV08T0ai5/PLL8eabb8LhcADomyt4as7dnDlzsG7dOgDAyZMnsXv37rOeP2vWLLzzzjvwer0A+q7YffHFF/sLGkmSMGHCBGi12v6isampCYsXL0Z1dTXmzJmDzZs3o7OzE6IoXrDYvfHGG7Ft2zZs2bIFN910E4C+nsKrrroKK1asQElJCd59912EQqGznpucnNx/Yc7pxdSMGTOwY8cOHD16FADw/vvvY8mSJfD7/fjBD36At956C1/5ylfw8MMPw2g0oqmp6axjt7e341//+heAvvmFWq22f27mrbfeipdeegmSJKG0tPS8PxsAfPTRR/jGN76BG264AWazGTt37jzjZ3njjTcA9LXFzp07MXPmzAvmJ6LYx55GIho1c+bMwapVq/DNb34TgiDAaDTiD3/4AwRBwMMPP4wHH3wQCxcuRGpq6jmvvL7iiitQW1uLr33tawCA3Nxc/Pd//zf0ej2KioqwcOFCvPrqq3jyySfxyCOP4LnnnkMwGMR3v/vd/otVDh8+jGXLlsFkMqGgoABtbW3nzGq1WlFUVIRgMAibzQagb8j2P//zP3H99ddDqVRi2rRp2Lp1K0RRPOO5a9aswc9//nOYTCbMmjULVqsVAJCXl4ef//zn+P73v9/fe/fUU0/BYDDgvvvuw0MPPYR169ZBqVTi2muvxWWXXXZWLrPZjK1bt+Kxxx6DXq/H448/3t8rW1BQgISEhDOG/8/n29/+Nn7zm9/gySefhFKpxNSpU88YZvb7/bjxxhsRCASwZs0aTJgwAQDOm5+IYp8gnT4eQUREUevYsWO47bbbsHnzZuj1ernjEFGM4fA0EVEM+N3vfoevfe1reOCBB1gwEtGIYE8jEREREQ2IPY1ERERENCAWjUREREQ0IBaNRERERDQgFo1ERERENKCIWKexra0Losjrcc7FbDbC5fLKHYOGie0Y/diGsYHtGBvYjiNDoRCQlHT+rVEjomgURYlF4wXwdxMb2I7Rj20YG9iOsYHtOPo4PE1EREREA2LRSEREREQDGvTwtNfrxS233II//vGPyMjIOOO+gwcPYs2aNfB6vZg2bRp+9rOf9e+FSkRERBTLJElCW1srent7AET+sLlSqYLRmAi9/vzzF89lUJXd3r17sWbNGtTX15/z/h/+8If4xS9+gbKyMvz4xz/G3/72N6xYsWJIQYiIiIiikdfbAUEQYLNlQBAiexBXkiQEAr1ob28FgCEVjoP6yf72t7/h4YcfRkpKyln3nThxAj09PSgrKwMA3HTTTdi8efOgAxAREY0lnu5ePP/mQXh9AbmjUJj4fF7ExydGfMEIAIIgQKPRIjHRCq+3fUjPHVRP4yOPPHLe+xwOB6xWa/9tq9WKlpaWIYUgIiIaK96vPIm9Na2wJemxeFa23HEoDEQxBKUyuqblqdUahELBIT1n2D+hJJ09di8IwpCOYTYbhxsjplmt8XJHoDBgO0Y/tmFskLMdjzd78ObHDUg0arH7oAPLrp0EU5xGtjzRLJJejw6HAmq1Uu4YQ6ZQKIb0exx20Wiz2eB0Ovtvt7a2nnMY+0JcLi/XWzoPqzUera0euWPQMLEdox/bMDbI3Y7Pb6xCMCjC1xOAVqPEa+8eZm/jRZC7Hb9MFEUEg6LcMfpt3boZL730PAKBAL761RVYtuyr53ycKIpn/B4VCuGCHXnDHnxPT0+HVqvFZ599BgD4xz/+gblz5w73sERERDHF092L/XVuKASgJxCCWqXEzupmzm2ksGptdeDZZ5/Ek08+hxdffBUbN76Bujp7WI590UXjqlWrUFVVBQD43//9X/zqV7/CwoUL4fP5sHLlyrCEIyIiihVv7WpAICjCaNAAEuDvDSEkithecULuaBRD9uz5BFOnToPJlAC9Xo+rrroG27e/F5ZjD2l4etu2bf1fP/vss/1fFxQUYP369WEJREREFIsONLQBX0z5FwQBnu5exBvUaGiJnGFWCo+Wl14463uGosmIn3YZxEAvWl995az740rLYCwrR6i7C871fzvrfuMllyJucvGA53Y6W2E2W/pvm80WHDiwf4g/wblF16U+REREUUiSJCTHa5GfkYhbr8tHZa0TGz6qw+0LCpCVGjkXdFD0O9cFygrF0C5QPh8WjURERCOssbUL7V29uGpqOgCgKCsJmz9uQEVNK4vGGGRbecd571OoNRe8X2mIu+D9A7FaU7B3b0X/bZfLCYvFeoFnDF7kr0JJREQU5arsLqiUAiZlJgEANGolJueYcaChDf7ekMzpKJZMm3YZPvvsU7S1taGnpwfbt2/D9Okzw3Js9jQSERGNoJAoYn+dG5PGJ0F72lp+5XkWfH6kFdV1blwyKTw9QURWawpWrboPq1ffg0AgiOuvX4qiooHnQg4Gi0YiIqIRVHfSg25/ECU5yWd8P90SB2uiHpU1rSwaKayuu24BrrtuQdiPy+FpIiKiEbTP7oJeo8TE9IQzvi8IAsrzLGh0dsHR7pMpHdHgsWgkIiIaIb2BEA4fa0NhdjJUyrPfcksnmqFUCKg40ipDOqKhYdFIREQ0Qo40tqM3KKI0x3zO++N0auSPT8S+oy4EQ5GzDR3RubBoJCIiGiFVR90wGTQYbzv/fr5T86zo9gdRc7x9FJMRDR2LRiIiohHQ3RNE7YkOFE9IhkI4/+LKOekmmAwafF7jHMV0REPHopGIiGgEHGxwQ5QklEw899D0KQpBwJRcM+wnO9DZ1TtK6YiGjkUjERHRCKiyu2BN0MGWpB/wseV5VogSsLeWvY0UuVg0EhERhVmH14+GFi+Kc8wQLjA0fUpSvBYTUuNRUeOEeI69gyk2ebp78fybB+H1BcJ+7K4uL2677atoajoZtmOyaCQiIgqz6jo3AKDkPFdNn0tZngVtXj8amj0jFYsizPuVJ7G3phXbK06E9bj791fjvvvuwvHjx8J6XO4IQ0REFGZVdhcyrHFIitcO+jmFWcl4++NjqKxxYkKaaQTT0UjaW+tExSAuagoEQ6isdUKAgLd3N6DJ1Q216sJ9eeV5FkzJtQx47E2b3sD3v/8A/vu//2vQuQeDPY1ERERh5GjrRkubb0i9jACgVilQnJOMAw1u+PzBEUpHkaLJ1Q1JAhQKAZIENLm6wnbsH/3oJ5gypTxsxzuFPY1ERERhVF3nhkIAirKTB37wl5TnWbHncCv217kxrSBlBNLRSJuSO3BvoKe7F7/6y+ewJOqgVCgQEkX09Iaw/MqJMOrVo5R06NjTSEREFCaSJKHa7kZOWsJFvfmnmQ2wJelRUcNtBWPZ+5UnERJFKBV9ZdipwjHccxvDjUUjERFRmDS2dqHN60dxztB7GQFAEASU51lx0tWNZnd3mNNRpGho8UAUJXi7e/v/E0UJDS2RfREUh6eJiIjCpNrugkopoCAr6aKPUZJjxrt7jqOyxokF0zPDmI4ixbdvLJE7wkVhTyMREVEYhEQR1XVuTBqfBK1aedHHMehUmJSZhH1HnQiGxDAmpLFm/fpNSEsbF7bjsWgkIiIKg7qTHnT7gyi5yKHp05XnWeDrDeHQsbYwJCMKDxaNREREYVBld0GvUWJiesKwjzVhnAkJcRpUDmK9P6LRwqKRiIhomHoDfb2ChdnJUCmH/9aqEASU5VlgP9mJdq8/DAlppElRtv3jxeRl0UhERDRMRxrb0RsUwzI0fcqUiX1r/VXWsrcx0ikUSoRC0bUgeyDQC6VyaNdDs2gkIiIapmq7GyaDBpm2+LAdMyleiwlpJuytcUKMsl6ssUavN8LjaYckRf6FS5IkobfXj/b2VhiNiUN6LpfcISIiGobuniBqGjswo8gGhSCE9djl+Ra89r4d9U0e5IzjftSRymhMQFtbK1paGgFEfoGvVKoQH58EvT5uSM9j0UhERDQMBxvcECXpohf0vpCCzCToNUpU1LSyaIxggiAgOTn2t33k8DQREdEwVNndsCbokJpsCPuxVUoFSnLMOHSsDT5/dM2Zo9jDopGIiOgidXj9aGjxoDjHDCHMQ9OnlOdbEQxJqLK7RuT4RIPFopGIiOgiVde5AQDFE8I/NH1KarIBaWYDKrhmI8lsUEXjpk2bsGjRIsybNw+vvPLKWffv378fy5Ytw5IlS3DPPfegs7Mz7EGJiIgiTXWdGxnWOCSbdCN6nrJcC5rd3WhydY3oeYguZMCisaWlBY8++ijWrl2LDRs2YN26daitrT3jMY888ghWr16NjRs3YsKECXj++edHLDAREVEkcLT70OzuRkmOecTPVZJjhkopsLeRZDVg0bhz507MmDEDiYmJMBgMmD9/PjZv3nzGY0RRRFdX36cfn88HnW5kP3ERERHJrdrugkIAirJHbmj6FL1WhcKsJFTbXQgEI38tQIpNAxaNDocDVqu1/3ZKSgpaWlrOeMyPfvQjPPTQQ5g9ezZ27tyJW265JfxJiYiIIoQkSai2u5GTlgCjXj0q5yzPs8LX27ddIZEcBlyn8Vx7E55+hVhPTw8eeugh/PnPf0ZpaSleeOEFPPDAA3jmmWcGHcJsNg76sWOR1Rq+HQZIPmzH6Mc2jA3haMe6kx3w9gSw5IqJo/bvwmw2YsunjTh0vANXT88elXNGMr4eR9+ARaPNZsOePXv6bzscDqSk/HsByyNHjkCr1aK0tBQAcPPNN+N3v/vdkEK4XF6IYuSvoC4HqzUera0euWPQMLEdox/bMDaEqx0//Ow4JElCWoJuVP9dFGUl4l8VJ3DE7kRSvHbUzhtp+HocGQqFcMGOvAGHp2fNmoVdu3bB7XbD5/Nh69atmDt3bv/9WVlZaG5uht1uBwC89957KCkpCUN0IiKiyBMSReyvd2PS+CRoNcpRPfeUXAsEAJW1vCCGRt+gehrvv/9+rFy5EoFAAMuXL0dpaSlWrVqF1atXo6SkBL/61a/wve99D5IkwWw245e//OVoZCciIhp1dSc96OoJomQEtg0cSEKcBhPTE1BZ48QVZePCvtc10YUI0rkmLY4yDk+fH7vgYwPbMfqxDWNDONrxjQ/sqGlsx/dvLoNKOfp7ZOyvd2P99qO49dp85GYkjPr5IwFfjyNj2MPTRERE1CcQ7Lt6uTA7WZaCEQAmjU+EQatCRU2rLOensYtFIxER0SAdPt6O3qAoy9D0KSqlAqUTzTh8vB3dPQHZctDYw6KRiIhokKrtbpgMGmTa5F3upSzPgpAoYd9Rl6w5aGxh0UhERDQI3T1B1DR2oHhCsuwXoNiSDBhnjkNFjfOc6ykTjQQWjURERINwsMENUZJQLOPQ9Omm5lvgaPfhpKtb7ig0RrBoJCIiGoQquxuWBB1Skw1yRwEATJ6QDLVSgYojvCCGRgeLRiIiogF0dPWiocWDkhzzGVvpykmnUaEwKwnVdW4EgiG549AYwKKRiIhoANX2vgtOiidExtD0KVPzrfAHQjhQ3yZ3FBoDWDQSERENoLrOjQxLHJJNOrmjnCHTZkRyvBYVNdxWkEYei0YiIqILcLT70OzuRslEs9xRziIIAsryLGho8cDd2SN3HIpxLBqJiIguoNrugkIAirIja2j6lCkTLVAIYG8jjTgWjUREROchSRKq7W5MSDPBqFfLHeecTHEaTExPwN5aJ0SRazbSyGHRSEREdB6NrV1o8/pRkhN5Q9OnK8+zwuMLoPZEh9xRKIaxaCQiIjqParsLKqWAgswkuaNcUP74BBh1KlRyiJpGEItGIiKicwiJIvbXu5E/PhFajVLuOBekVChQMtGCw8fb4fUF5I5DMYpFIxER0TnUnfSgqyeI0ggfmj6lPM8CUZKw7yh7G2lksGgkIiI6hyq7C3qNEhPTE+SOMijWRD3GW42orHFCknhBDIUfi0YiIqIvCQRDOHSsDYVZSVApo+etsizPgtaOHjS2dskdhWJQ9LwSiIiIRsnh4+3oDYoRuaD3hUyekAyNSoGKmla5o1AMYtFIRET0JdV2N0wGDTJt8XJHGRKtWonJ2ck4UOeGPxCSOw7FGBaNREREp+nuCaKmsQOTJyRDIQhyxxmysjwL/EERB+rdckehGMOikYiI6DQHG9wQJQklOZG5beBAxqcYYTHpuK0ghR2LRiIiotNU2d2wJOiQmmyQO8pFEQQBZXkWHHd44Wz3yR2HYgiLRiIioi90dPWiocWDkhwzhCgcmj5lSq4FCgGoqGVvI4UPi0YiIqIvVNtdAIDiCdE5NH2KUa9GXkYi9tU6ERJFueNQjGDRSERE9IXqOjcyLHFINunkjjJs5XkWeHuCqG3skDsKxQgWjURERAAc7T40u7tRHCXbBg4kLyMRRr2aF8RQ2LBoJCIiQt/QtELoWyA7FigUAqZMNKOmsR2e7l6541AMYNFIRERjniRJqLa7MSHNBKNeLXecsCnLs0CUgH1HXXJHoRjAopGIiMa8xtYutHn9MTM0fYolQY/MFCMqapyQJEnuOBTlWDQSEdGYV213QaUUUJiZJHeUsCvPs8LV2YNjLV65o1CUG1TRuGnTJixatAjz5s3DK6+8ctb9drsdt912G5YsWYI777wTHR28UouIiKKDKErYX+9G/vhEaDVKueOEXVF2ErQqBSq5ZiMN04BFY0tLCx599FGsXbsWGzZswLp161BbW9t/vyRJ+Na3voVVq1Zh48aNKCwsxDPPPDOioYmIiMLFfrITXT1BlEyIraHpUzRqJSZPSMb+ejf8vSG541AUG7Bo3LlzJ2bMmIHExEQYDAbMnz8fmzdv7r9///79MBgMmDt3LgDg3nvvxa233jpyiYmIiMKoyu6CXqNEbkaC3FFGTHmeFYGgiOo6t9xRKIqpBnqAw+GA1Wrtv52SkoJ9+/b13z527BgsFgseeOABHDhwAPn5+fjJT34ypBBms3FIjx9rrNZ4uSNQGLAdox/bMDac3o69gRDszR5MK0pFWmrsFo0WixEZnzXiUGM7FszOkTtOWPD1OPoGLBrPdbXV6ftxBoNBfPLJJ/jLX/6CkpISPPbYY/j1r3+NX//614MO4XJ5IYq8qutcrNZ4tLZ65I5Bw8R2jH5sw9jw5XasrnPB292LCTZjzLdvUWYitn56HPtrHEhJ1MsdZ1j4ehwZCoVwwY68AYenbTYbnM5/T551OBxISUnpv221WpGVlYWSkhIAwOLFi8/oiSQiIopU1XY3TAYNslJjv9eqJMcMhSCg8kir3FEoSg1YNM6aNQu7du2C2+2Gz+fD1q1b++cvAkB5eTncbjcOHToEANi2bRsmT548comJiIjCwOcPovZEByZPSIbitBG0WGXUqzEpMxF7j7oQDIlyx6EoNODwtM1mw/3334+VK1ciEAhg+fLlKC0txapVq7B69WqUlJTgiSeewJo1a+Dz+ZCamorf/OY3o5GdiIjooh2odyMkSijJiY1tAwejPM+Cgw1tqDnejsLssfNzU3gIUgQsEc85jefHeRuxge0Y/diGseH0dnzx7UPo6gngvhuKz5irH8tEUcJj6/ciNcmAFfPy5Y5z0fh6HBnDntNIREQUazq6enGsxYOSHPOYKRiBvqKgLNeCoyc70NnVK3ccijIsGomIaMyptrsgASieMPaGaMtyLRAlYC93iKEhYtFIRERjTnWdGxmWOCSbdHJHGXXJJh2yU+NRUeOEKP8MNYoiLBqJiGhMcbT70OzuRnFObG4bOBjleRa0ef041sJ5gTR4LBqJiGhMqba7oBCAyWNwaPqUwqwkaNVKVBzhEDUNHotGIiIaMyRJQrXdjQlpJhj1arnjyEatUqIkJxkHGtzw+YNyx6EowaKRiIjGjIZmD9q8/jE9NH1KWZ4VwZCE/XVuuaNQlGDRSEREY8ZnB1ugUgoozEySO4rsxpkNsCXpUVHDIWoaHBaNROcgSRJ6jjWgp74eot/f9z1RRASshU9EF0kUJVQeaUX++ERoNUq548hOEASU5Vlw0tWFFne33HEoCgy4jSDRWBPy+eDetAHdh/v2U0+9405oM8aja99euN/aBIVOD4Ve3///5IWLoEpIhP/kCfQ2Nvbdp//3Y1RJ7NEgigT2pk54fb0omZAhd5SIUZpjwXt7GlFR48SC6Zlyx6EIx6KR6DT+48fhfGM9Ql4Pkq6ZB824cVBbUwAA6pQUxM+YBdHn6/uvpwchTycg9HXY99iPov1f2846Zsb9/wkgAR0ffQhvxWdQ6HRQ6A1f/F+P5PkLIahU8J84gVBnxxn3KfR6KDSa0fwVEMWsqqMu6LVq5GYkyB0lYhh0KkzKTMK+o05cOy0DKiUHIOn8WDQSfUGSJLRv3wYoFLDdfie049LPuF87Lv2s753ONGs2jOWXQOzpgejrhujrgdjjg8JgAACozWZox2d+cb8PAU8nxJ4eYNFiAID38z3wVlaccUyFRoPxD/wYAND27jvwHz/2RQ9mX1GpMiXANHMWAKC3uQlSMNhXdOp1UOj0EBR8AyACgEAwhMPH2nBZcRoLoy8py7Ngf70bh4+1j+lliGhgY65olCRpTO0zSgMLeb0AAKXRCMuNyyCoVFDohr5LhKBQQBkXB2VcHICzr8w0FBbBUFh03ucnXnUN4i+dDrHnVE+mD1Io1H+/QqeDoFYj5OlEwNECsacHyjhjf9HY9s4W9NTXn3FMbXo6Ur+5CgDg3vI2Qh5Pfw+mUqeHymyGYVIBACDgcvX/7IJGw9cJxZQjxzvgD4qYWpAid5SIkzPOhIQ4DSpqWlk00gWNqaJRCgbheMTX+3UAACAASURBVPUVGMvLYZhcwjdFgs9+FK5/vA5tegasN38NSqNRtixKo/GC50+YPQcJs+ec8T1JFPu/TrpuIUKezv7h85DPB4X+38Wv2N2NQKvjtIJUhC4np79odKx9GcH2dgCAoFRAodPDUFiE5IVfAQC4334LUAhQmRIQVzrli+KYKDpU2V2IN6gxMT0RLpdX7jgRRSEIKMu14IO9J9Hh9SPBqJU7EkWoMVU0ij09kAIBON94HYaDB5G88CuyFgkkHykUQsf7/0LHzh1QWyxIuPoauSNdlNOHnzU2G2CznfexlhuX9X8tSRKk3t4zejKT5i+E2OWF6OtB6IveTrXF2n9/T91RhLxeiH4/2rdvg3HqJTDNvBwqkynMPxVRePn8QdSe6MBlhTYoFOwsOJcpuRa8v/ckKmuduKLs/NNwaGwbU0Wj0miE7fZvwvPxLrRv34amY8eQvOgrFxwypNgT7OyE87W/w994HMbyqUiavwAK9di62EQQBAjaM3sTDPmTLviccfd9BwAQaG1Fx86P4Pn0E2jSxsFYOoXTPiiiHahvQ0iUUJLDodfzSYrXIifNhL21LsyZMg4Kvp7pHMbcbGBBoYBp1uVIveseKE0mdHyw/YwhPop9gkoF0d8Dy03LYV68ZMwVjMOltlphWXoj0v/ju4grLgEAeD7eidb1f0Nvc5PM6YjOVmV3wWLSITXZIHeUiFaeZ0Gb14/6Jo/cUShCjamextNpUlKQ+s27EOrqgqBQQOzpgf9EI/QTc+WORiNACgbh+WQ34qfPgNJgQNrd3+KVxcOkSkw843aP/Si6Dx6AfmIuTLPnQJeZJVMyon/r6OrFsRYPrixPZ2/4AAqykqDXKFFR04qccZx2Qmcb0++aglLZPx+r8+OdcKz9C1ybNvTvAEKxIeByovlPz6HtvXfgO1oLACwYw8w083Kkr74fiVddg96mJrT8+QW0bd0idywi7K9zQQJQzKuCB6RSKlCSY8ahY23w+YNyx6EINGZ7Gr8sYfZcSKKIzp070FNnR/LipdDn5Mgdi4bJu68SbW+/BSiVSLllBfR5+XJHilkKnQ4Js+cgfvp0dFVUQJ2aCqBvDqn/+DEYCotYrNOoq7K7kW6JQ7Jp6MtojUVleRZ8csiBKrsLlxWe/8I6Gpv4F/wLgkqFpKuvRert34SgVMHxykvw7PlU7lg0DO3bt8G14R/QpKUh7e5vsWAcJQq1BvGXTe8fnu6qrIDz9fVoeuoJeCs+hxRkDwaNDke7D83ubpTknL1uKp1bmjkOackGVNY45Y5CEYg9jV+izRiP1LvvQcf770Ofmwegby089pBEH0NhEaBQIGH2XLafjEyz50BttaLjow/h+udGtL+/HQmXz0b8pZfJHY1i3H67CwoBXLB6iMryLHh79zE0ubqQZuZ6rPRvfCc9B4Vag6Rr50GVmAhJktD617Voe2cLxEBA7mh0AZIkwfPpJ32LUAPQ2FKROPdKFowyExQKGAqLkHrX3UhZ8XWok5PgP9HYf7/Y2ytjOopVkiShyu5GdpoJRr1a7jhRpSTHDJVSYG8jnYU9jQMJhaBKTETnx7vgq62BecmN0KZz4dNIE/L54N60Ad2HD0GfmwcpGISg4j/vSCIIAvQTc6GfmNs/RN3b3IyWP/8JxksuhWnGTC62T2FzorULbV4/5paNkztK1NFrVSjITEKV3YVrp42HWsUP3tSH/xIGIKhUSF60GCkrvg7R34vmF55D+7/e47ysCOI/fgzNz/4RvtojSJp3Haw3f40FY4Q71T6CWg19Xj46P96JE48/Bvdb/0SgrU3mdBQLqupcUCkFFGYmyR0lKpXnWeHrDeHwMb4e6d9YNA6SfmIuxt37LRhLp8C7dy+kIIeqI4Ho98Ox7lVAoYDt9jthmjGLw9FRRG02w3LTcoy77z8QV1IKb2UFmp9/hh/KaFhEUcKBOjfyMxKh1SjljhOVstPikWTUooJD1HQadscMgUKnh3nJDQh1d0Oh00MKBuGtrIBx6iUsVEZZyOeDQqeDQquF9au3QJNig0LHJTWilTrZDPPiJUiYeyV6m5sgqFSQJAnt72yBYXIxtOkZckekKGJv6oS3J8irpodBIQiYkmvG9sqTaPP4kRSvHfhJFPNY6VwEpaFvK6ruw4fgfvtNNL/wHHpbHTKnGjt89qNoeuoP8H6xJJIuM4sFY4xQmUz9e2AH29vh3bcXzX96Di0v/xk+ux2SJMmckKJBtd0FnVqJ3IwEuaNEtbJcCwQAlbXsbaQ+LBqHIW5yMSzL/h+CbW1ofu4ZdO7awX2sR5AUCqF927twrP0LFAYDtFnZckeiEaROSkL6d76HpGuvQ8DZCscrL6H5T88i2M45VnR+gWAIhxraUJidBJWSb3HDkWDUYuK4BOytdULkBzYCh6eHLa5oMnSZWXC/9U+0vfsOAi4XzIuXyB0r5gTb2+F84zX4G4/DWD4VSfMXQKHWyB2LRphCq4Vp5izEX3oZvHsr0b2/CkpjPIC+7SFViUkQlJyzRv925HgH/EGRQ9NhUpZnwfr3j8J+shO56ey5HesG9TFs06ZNWLRoEebNm4dXXnnlvI/bvn07rr766rCFixZKoxGW/3czzEtvRPy0SwEAYiDAXscwCricCLQ6YLlpOcyLl7BgHGMElQrxl0yDbeUdffMdg0G0vPwSTj75ODx7PuEaqtSvyu5CvEGNrNR4uaPEhEmZiTBoVaioaZU7CkWAAYvGlpYWPProo1i7di02bNiAdevWoba29qzHOZ1O/M///M+IhIwGgiDAWDoFmtQ0AEDb5rfgeOUlDqUNgxQMwldbA6Dv6vX01d9D3ORimVNRRFAokLzoK1DGGeF++y2cfPwxdOz4CKLfL3cykpHPH0TtiQ4UZydDIQhyx4kJKqUCJTlmHD7Wju4efjgb6wYsGnfu3IkZM2YgMTERBoMB8+fPx+bNm8963Jo1a/Af//EfIxIyGmkzMtB78iSann4K3orPOIF/iAIuJ5r/9Bwcf13bX3grdHqZU1GkEBQKGPInwXbHnbDddjvUtlS0b3sX/mPH5I5GMjpQ34aQKKFkIoemw6k834KQKGGf3SV3FJLZgHMaHQ4HrFZr/+2UlBTs27fvjMe89NJLKCoqwpQpU8KfMEoZyy+BbkIOXJs2wPXPTeg+eBDm65dCGc8hk4F491Wi7e23AKUSKTd/DapELs5L5yYIAnTZ2dBlZ6O3pRnqFBsAoP2D7RB9PphmzIIqgfOwxorqOhcsJh1Skw1yR4kptiQDxpnjUFnjxPRCGwT24o5ZAxaN5+ohO/0fzJEjR7B161a8+OKLaG5uvqgQZnOMbh1mjUfq974N185daHnnPSQn6aFJGnrRaLWOjUJTkiQ0/m09OnZ/CtPECci8dQU0ibHzhj9W2lE2p/1+/UIIrsrP0bP3cyRdMhW2a66C9rQPvxd9CrZhxGr3+HHC1Y0FM7KQkmK64GPZjkN3xbTxWP/eEfSIQGaEzBdlO46+AYtGm82GPXv29N92OBxISUnpv71582a0trZi2bJlCAQCcDgcWLFiBdauXTvoEC6XF6IYw8O3k0phySlER1AFydGJzh0fwlg2dVD77Fqt8Wht9YxCyMjQqzchbtYcmObMRUdAAcTIzz7W2lFu2jnXIKXkEnR+vBOtn3wGx65PkDTvOpimz7zoY7INI9vO6iYEAiFkW+Mu2E5sx4uTadZDkiRs+6QBX5mZLXcctuMIUSiEC3bkDTincdasWdi1axfcbjd8Ph+2bt2KuXPn9t+/evVqbNmyBRs2bMAzzzyDlJSUIRWMY4VCrQYABBwOdHz4AZqefhLdBw/InEp+kiTBs+cTdB85DAAwzZyFxCuu5A47NGyqxEQkL1iE9O98DwmzLofui3U9A24Xeo41yBuOwq7a7ka6JQ7JJi70PxJ0GhWKspJRZXcjEAzJHYdkMuA7s81mw/3334+VK1fihhtuwOLFi1FaWopVq1ahqqpqNDLGFI3NhtS77oYyMRGt6/8G5+vrEeruljuWLEI+H5zr18H99lvoPrBf7jgUo5RGIxKvvrZ/ZQPPx7vQ8ucX0Pzi8/DV1PAitRjQ2u5Dk7sbxTnJckeJaeX5FvgDIRxs4KogY5UgRcBfzJgfnj4HKRRC586P0PHB+1CnpiL1m6vOObk4Vrvg/cePw/nGeoQ8HiRefS3ip8+I6d7FWG3HaCQGetFVWYnOnR8h2NkJjS0VCXOvgKGg8ILPYxtGrn993oiPqppw/1fLYNSrL/hYtuPFkyQJf3i9CvEGDW5fWCBrFrbjyBhoeJo7wshEUCqRMOcK6PMmQfT3QBAESMEgpGAw5vdR7m1pRvOf/wRVQgJst98JbXq63JFoDFGoNYi/9DIYy6eiq7oKnTs/Qk9DPQwFhX29jqEQBBX/NEYLSZJQZXcjO800YMFIwyMIAspyLdhWcQLuzh5OBRiD+JdRZprU1P6vO3Z8iK7KCiRfvxT6nIkyphoZkihCUCigTrEhef5CxJWUxnyBTJFLUKlgLCtHXOkUSMEgAMDfUA/nP96AaeZMGMsvgULDnYci3YnWLrR5/Zg7ZZzcUcaEKbkWbK88gcpaJ66emiF3HBplsTseGIX0uXkQ1Go4XnkZ7rf+GVO7W/jsdpx88nEEXE4IgoD4Sy9jwUgRQVAo+otDQa2BOjkZbVu34MTvH0X7B9sR8vlkTkgXUlXngkopoDCL67mOBlOcBhPHJaCy1jnmppURi8aIok3PQOqqe2GaPhOezz9D07N/RFdDdO9wIYki2re9C8fal/uG/PhHhiKYNj0dtpW3I/X2O6HNGI+O97ej+flnuI98hBJFCQfq3MjPSIRWo5Q7zphRnmeBpzuA2hMdckehUcbh6QijUKuRdN186AsK4H5zExRRPLcq2NEO5+uvwd94HMbyqUiavwAKNYf7KPJpx49Hyi0r0NvSjGBHBwSFAlIohLZt78JYfgnUSezVigT2pk54e4IozuG2gaMpb3wi4nQqVNY6kT8+Ue44NIqityKJcbrMLKTdcx/0tgR4Wz1of3879Lm50KZHzxwSz6efIOBogeWm5YibXCx3HKIh09hSobH1zTv2nTgBz8e70LlzB+KKi2GaNQea0zY6oNFXbXdBp1YiLyN2do6KBiqlAqU5Zuw+6IDXF+AFSGMIh6cj2KklaEI+H7r2VqD5hefRvu3d/kn7kUgKBhFwuwEAiVdejdS7v8WCkWKCITMT477zXZimz4Dv8GE0Pf0kHOte5ZxHmQSCIg41tKEwOwkqJd/KRltZvhWiJKHqqEvuKDSK+EqLAkq9Hml3fwvGKWXo2PERmp9/Br3NTXLHOkvA5UTzn56DY+3LkIJBCCoVh/EopqjiTUiaNx/jvvM9JMy9EqKvGwqtFgAQcLk493EUHTneDn9QRAmHpmWRkqhHhjUOFTWtXCB/DGHRGCUUOh3M1y9Fyi0rEOruRstfXoLY2yt3rH7efZVofu4ZBDs7kDx/Ide5o5imNBiQeMWVsH3jmxAUCoh+P5pfeA4nfvd/aHtnC3pbmuWOGPOq7C7EG9TISo2XO8qYVZ5nRWtHD060dskdhUYJ39mjjD4vH2n3fhuBlhYoNBpIkoRge7tsPXpiIAD3W/9E17690GVlwXzDMqhMJlmyEI22U7s4CUolzF+5Hl379sLzyW50frwLGpsNidfOhz4nR+aUscfnD6L2RAcuK0iB4hw7adHomJydjM2fHENFTSsyUs6/iwjFDhaNUUip10OZnQ0A6KqsgPvtN5F45dWInzFz1LfiE5RKhDo7kDD3SiTMmRvTWwESnY+gUsFQWARDYRFC3V3o3r8fXfv2QqHuu0Cgt6UFgVYH9JMmcQWBMDhQ34aQKPGqaZlpNUpMzk7G/jo3rrssE1o1lz2KdSwao5w+Lx/62hq0vfcOug8fgnnJDVCbR/YPqSRJ8FZ8DkP+JCiNRqTcupLFItEXlIY4xF96GeIvvaz/e11V+9C5awcUGg0MRZMRVzIF2sxMvm4uUnWdCxaTDmlmg9xRxrzyPAsqa504WN+GsjyL3HFohPEvVpRTGo2wLP8qLDfchICzFU3PPAXv3soRO1/I54Nz/Tq439wEz2d7AIBvfEQDSLz6Gthuux2GosnoPrAfLS+/iObnnuEFBBehs6sXDc0eFOck908PIPmMTzHCbNKhoqZV7ig0CtjTGAMEQUBcSSm02dlwv7kJyri4ETmP//hxON9Yj5DHg6Rrr0P89Bkjch6iWCMoFNBlZ0OXnY2kBQvhO3wYYo8PgiBAkiQ41/8NuuwJMEyeDKVhZF6/saK6zgUJ4FXTEUIQBJTnWfDuZ41wdvhgSdDLHYlGEIvGGKKKN8F684r+T98dOz6CQqeDceolw/5E3n3wAFpf+ztUCQmw3X4ntOnp4YhMNOYo1BrEFZf03xa7uhBsa4P70EG0bd0MfW4e4kqnQJ+Xz1UIzqHa7ka6JQ7JJu5dHymm5Fqw7fNGVNQ4MW/aeLnj0AjiX6QYc6o4lEQR/oZ6+I7Wwnf4IJIXLx3WVc3arGzEXzINiVddA4WOf6yJwkVpNCLt7nvR29yMrqq96KquQveRw7Au/yoMhUV9i/krlRyKBdDa7kOTuxvzL2NhEkmMejXyMhKxr9aJq6emQ8kpSzGLLRujBIUC1ltWIHnhIvQcO4amPz4B777KIc2h8tntaF33KqRQCEqDAckLv8KCkWiEaFJTkTRvPtK/+32krPg69Hn5AICOnR/h5JOPo/2D7Qi2t8mcUl7VdhcUAlA8gUPTkaY8zwJvTxC1jR1yR6ERxJ7GGCYoFIifdhl0ORPh2rgB7k0boc0YD3Xyhf/gSqKIjvf/hY4dH0FtsSDU1cW1F4lGiaBQQD8xt/+2JsUGv8mEjve3o+P97dBmZsJYNhXGKWUyphx9kiShyu5GdpqJex1HoNyMBBh1KlTUODEpkzuBxSoWjWOAOtkM28rb0XviRH/B6D95AtpxZ89LDHa0w/n6a/A3HoexrBxJCxZyXTkiGRkKCmEoKESwox1dVVXoqtoL36GD/UVjz7EGaNMzIChje428E84utHn9mDtlnNxR6ByUCgVKcy34eH8zPN29iDfwfSMWsWgcIwSFAtrxffOAeurr0fLyizAUTUbywkX9V2tKkgTn668h4GiB5cZlZ0zWJyJ5qRISkTB7DkyXz4b0xRaiwfY2tPz5BSjj4hBXXIK40ilQ21Jjcv5jld0FlVJAQVai3FHoPMrzLNhZ3Yx9R124vCRN7jg0Alg0jkHazEwkXnU1Oj7YjqaGeiQtWAR9Xh4Uag2SF18PQakccAibiOQhCAIErRYAoDTGw3rz19C1txKePZ+ic/fHUFutsCy9EZq02OmRE0UJB+rcyM9IhE7Dt61IZUnQY3yKERU1Tswqjs0PL2MdX31jkKBQIGH2XOhz8+Ha+A84X/s74kpKYbnhJmisKXLHI6JBElQqGPInwZA/CSGfD90HqtFVXQVlQgIAwFdbg1B3NwyTCqD4otCMRnVNnfD2BLltYBQoz7Ng4456HHd4kWmLlzsOhRmLxjFMk5qK1G/eBc9nn0Jt5vZPRNFMqdcj/pJLEX/Jpf3f69q3F137q9Gm0UA/qQBxpWXQZWdH3S5OVXYXdGol8jIS5I5CAyjKTsaW3cdQUeNk0RiDWDSOcYJKBdP0mXLHIKIRYL5xGYzTLkXXvr3oPrAfXVX7oM/LR8otK+SONmiBoIhDDW0ompAMlTK6it2xSKtWomhCMqrr3FgwPRNadWxfoDXWsGgkIopRgiBAl5kFXWYWkhcsQveRw1Co+5arEXt64Hj1FRiKJiNucjGURqPMac/tSGM7/EGR2wZGkfI8KypqnNhf58bUfKvccSiMWDQSEY0BgkqFuKLJ/beDnk5IoSDatm5G2ztboM/NRVzJFBgmFUTU9oVVR12I16uRlcqhzmiRYY2DNUGHippWFo0xhn39RERjkMaagrS77kHavffBNHMWeptb4Hx9ff+uM2JPDyRRlDWjzx9E7YkOFE9IhoJX4kYNQRBQnmdFY2sXHO0+ueNQGEXOx0kiIhp1GmsKNNfMQ+JV1/RtAGDp6xlyv/VP+E80Iq50CuJKSmVZhutgQxtCosSrpqNQyUQz3v2sEZU1Tlx3KfcKjxUsGomI6IwNAABAP6kAIV83Oj78AB0fvA9txnjEXzYdcZOLRy1Tld0Fs0mHNLNh1M5J4WHUqzFpfCL2HXXi6qnpvIgpRrAViYjoLHGTi2G7dSXSV9+PpGvmQfT3INDSDKBvf/ruI4chBYMjdv7Orl40NHtQkpPMRaKjVFmeBV09QdQcb5c7CoUJexqJiOi8VCYTTLMuR/zMWUAoBADosR9F67pXodDrETe5BHFTpkCTNi6sxd3+OjckAMUTODQdrXLTExBvUKOi1onC7GS541AYDKqncdOmTVi0aBHmzZuHV1555az73333XSxduhRLlizBfffdh46OjrAHJSIi+QiC0H9VtW5CDlJuWQF9zkR4Kz9H8/PPoumpPyDYEb4epSq7C+PMcTAn6MJ2TBpdCoWAKRMtOHqiA51dvXLHoTAYsGhsaWnBo48+irVr12LDhg1Yt24damtr++/3er346U9/imeeeQYbN27EpEmT8Pjjj49oaCIiko+gVEKflw/LTcuRcf9/wrx4CdQpNijjTQAAz2d74K2sgOj3X9TxW9t9aHJ3o2Qie6eiXXmeBaIE7K11yh2FwmDAonHnzp2YMWMGEhMTYTAYMH/+fGzevLn//kAggJ/+9Kew2WwAgEmTJqGpqWnkEhMRUcRQ6HQwlk+FdflX+7cn7KraB9emDWj8v9/C/fabCHm9QzpmdZ0bCgGYzCHNqJds0iHLFo/KWidESZI7Dg3TgEWjw+GA1frvxTlTUlLQ0tLSfzspKQnXXnstAKCnpwfPPPNM/20iIhp7bN+4A6l33Im44hJ4PtuDk0/8Hl37qwf1XEmSUHXUhexUE+INmhFOSqOhPM8Ct8eP4y1D+/BAkWfAC2Gkc3wyONdkZ4/Hg/vuuw8FBQW48cYbhxTCbI7M7asihdXKnRBiAdsx+rENhyClCCgvQk/LdWj655tIyc2EwRqPkN8PhVrd3yv5ZQ1NnfD2BHD93Ikj9vtmO46uuYkGvPv5CRw60YFpJePCdly24+gbsGi02WzYs2dP/22Hw4GUlJQzHuNwOHDnnXdixowZ+PGPfzzkEC6XF6LIbutzsVrj0drqkTsGDRPbMfqxDS+SQg/jkuXoAtDV6oHzH68j4GxF0rz50GVln/XwDz47DkmSkJaoHZHfN9tRHpMyEvDZgRZcUZIKnWb4C7ewHUeGQiFcsCNvwOHpWbNmYdeuXXC73fD5fNi6dSvmzp3bf38oFMK9996LhQsX4qGHHuJ6WkREdF76ibkQu7rQ8tKLcKx7FQHXvy+QEEUJ++tcyMtIDEthQZGjPN+KQEhEtd0tdxQahkH1NN5///1YuXIlAoEAli9fjtLSUqxatQqrV69Gc3MzDhw4gFAohC1btgAAiouL8cgjj4x4eCIiii5xJaXQFxTCs/tjdO74ECefegKWG25EXHEp6po64e0JooTbBsaccWYDUhL1qKhxYlpBysBPoIg0qI9y119/Pa6//vozvvfss88CAEpKSnDo0KHwJyMiopikUKuRMHsOjGXl6PjoA2i/GKbee/AkdCoF8jIS5A1IYScIAsrzLNjy6XG0tHXDlsStIaMRtxEkIiJZKI1GJC9YBFW8Cb2BEKr31SG95TD8B6shiaLc8SjMSieaoVQIqDjCNRujFYtGIiKSXc2JDohxJkwy+OF843U0v/Acehrq5Y5FYWTQqTEpMxFVdheCIX4oiEYsGomISHbVdhdMiUZMvXslzEtvRMjjRctLLw56fUeKDuW5VnT7gzh8PHxbTtLo4eVpREQkK58/iNrGDkwrSIFSqYSxdAoMhYXw7tkDfX4+AMB/8iRUiQlQGuJkTkvDkZNuQkKcBpVHnNzxJwqxaCQiIlkdbGhDUJTOuGpaodbANHMWAEASRbjeeA2hLi8SZs9F/GXTIaj49hWNFIKAKbkWfLj3JDq8fiQYtXJHoiHg8DQREcmq2u6C2aRDmvncV9QKCgUsX70Z2sxMtL33Dk4++Ti6qqvOuWMZRb6yXAskAHuPuuSOQkPEopGIiGTT2dWL+mYPinOSL7g5hMaagpRbbkXKrSuh0OnhfOM1+GqOjGJSCpekeC0mpJlQWeOEyMI/qrBoJCIi2eyvc0MCUDJhcAt663NykHrX3bD+v5uhz80DAHQfPoSAi71W0aQ8z4I2rx/1TdwKMJpwUggREcmmqs6FceY4mBN0g36OoFDAUFAIAJBCIbjffgtilxfGaZciYc5cXiwTBQoyk6DXKFFR04qccSa549AgsaeRiIhk4Wz3ocnVjZKci7+KVlAqkXbX3YgrK4fn009w8g+/R+euHZCCwTAmpXBTqxQozjHj0LE2+Pxsq2jBopGIiGRRVeeGQgAmTxje0itKoxHmr1yPtHu+Be34TLS9+w56m5rClJJGSnmeBcGQhCo7pxZECw5PExHRqJMkCdV2F7JTTYg3aMJyTI01BSlfuxW9Lc3Q2FIBAJ27d0GTNg66zKywnIPCJ80ch9RkAyprnLis0CZ3HBoE9jQSEdGoO+HsgtvjR/EwhqbP51TBKAYC8Oz+GC1/fgGtf1+HgJs9WpGmPM+CJnc3mlxdckehQWDRSEREo67a7oZKKaAwK2nEzqFQq5F277eReMVV6LEfRdMfn8CJf2xEyOcbsXPS0JTkmKFSCqisccodhQaBRSMREY0qUZSwv86FvIxE6DQjO0tKodEgYe4VGPft1YgrLYNr18eQ/D0jek4aPL1WhYLMJFTZXQiGRLnj0ABYNBIR0aiqa+qEtyeIkmFeADMUSqMR5sVLUPSTh6BK7OvddL25CV37MboicAAAEMhJREFUq7mzjMzK86zw9gTwu7/vhdcXkDsOXQCLRiIiGlVVdhd0aiXyxieO+rlVxr41HMUeH3pPNML5+nq0vPA8/MePj3oW6pOdFo9gUMTh4x34V0Wj3HHoAnj1NBERjZpAUMShhjYUZSdDpZSv30Kh0yP1rnvQtW8v2v/1HppffB6GwiIkL1gEpdEoW66xqMsXQLc/BAES/rmzASccXUhPMcKWpIctyYCUJD30WpYrkYCtQEREo+ZIYzv8QRHFOYPbNnAkCQoFjGXlMBRNRueunf+/vfsPbqpM9wD+PeckJz/apCFtkhZQi4AIChcFgUGtritUWvYuq1wvuHdddZf7S6ez7oyjg8z4j46O1xkGdMfxD9Crg6PcUUF2lQsyXOZqiwgXqEXAllKhtCSl6Y+0OU2ac879I23amkBoIT1p+/3MdIbkScKT503bp+/7nnPQXX0MgtkMIH5KoCtdC5uunwPHmmAxi7DKVnQrvQi0K+gMR/F/P6qJx+TlyPBNssPnjjeSsyUJ0HWIHKNRxaaRiIhGTU19Kxw2M4qLHEankiDKMlz33Y+8e+6FIEnQNQ3+D96D/dbZcCy4C4KJvyozJRSOorLmIiyyBEkUIZtF9ERVPPvo30HXgUCbgovBMPxtYfjbFNRdaIemA+ZvzkLXdXhd9viMpHugoeSsZOawskRENCqUSAx1jR1YeKs3K2eIBEkCEN/vKJrNaNvz3wh9dwiuBx6EffYczjxmwIFjTVA1DRYxPsMriSIiWi8OHGvCyqXFcObImDE1L/H4mKqhpV1Bjwb8eLYVgTYFp8+342jdwCl7nHZ5oJGcZIPXbUeB0wpR5PhdKzaNREQ0Kk7+1IaYpmfF0vSVSPYceB/7HZQzdWj/ag8uffJfsEy9AZ7Vj0JyZM8M6Xjwkz8ETdPRFY4m3Z+KSRJRlJ8Dj8eBaZ74QU26rqNL6YW/TYE/GJ+RDLSFcaapE1rfkfEmSYAnb1AjOcmOQrcNdqs5s29wnGHTSEREo6KmvhX5Tism59uNTuWq2KbPgHXazeg+fgzdJ2og5vQ1KbEYl6yvk6d/M/eaX0MQBDjsMhx2GTOmDJ2VbO3oiS9tBxX428Koa2zHsUGzkg6bOX6wTd/Sts9tQ0GeFZLIk8ukwk89ERFlXGd3FA0XQyiZP3lMLfMKoojcO+5E7h13AgC0SARNb/8FOXNug/PeEkg2m8EZ0uWYJLFvr6MdmD5wf5fSi0BiVjI+M9nwQydiWnxWUhIFeFw2eF22+D5Jtx2+SXbk2jgryaaRiIgy7sTZIHQAc6dl99J0OrqqwjZ9OjoPHURX9THk3VvCg2XGmFybGbk2M26e7Ezcp2r9s5IDS9xnL3aiun7geuW5VhO8fQ1k/57JgjyroaeOGm38lBMRUcZ9f7YVk/NzkJ9nNTqVayLZ7cj/1a/hWLQYbV/tSRwsU/jUOkj2sbHsTskkUYR3kh3eSXbMHbTnNtwzsFcy0KbgYlsY353yI6bGZyVFQUBBnjWxV7J/iTvXZh5TM+pXi00jERFl1KV2Bc2tYZTedYPRqVw3sq8Qvt8+DuVMHZS62kTDGOvshMnpTPNsGivsVjOmFZkxrWhgTDVNR2vn0L2S5/whfD9oVtJuMSU1kh6XbczPSrJpJCKijPr+bBCiANw2iteaHi226TNgmz4DABBrb0PT23+BfdatcD3wy8Q1rml8Efv2PHpcNtw+beB+JRKL75VsC8fPLRlUcOR0C3pVLf48AcjPs/UdvW1DYd9St8N++VnJUDiK7fvP4B8fmJEVeyrZNBIRUcbouo6a+lYUFzrhsMtGp5NRos0O59K70Vn5DcKnTsKxaDGcd9/Lg2UmCJvFhJsKHbipcOC0TJquI9gZ3ysZ6Nsr2RjoQs3Z4MDzZClxsE3/eSW9LivMJgkHjjXheG0LfJNsWLm02IB3NRSbRiIiypimS90IhiK4Z16R0alknGixwHXfL5B7xwJ0HNiPzoNV6K4+jslPV0C0WIxOjwwQ3/NoQ0GeDbcVD8y0K5EYWtrjV7vpn508WtuCaGxgVtJpl1F3oQM2iwmVNRdx/x1TDJ9tZNNIREQZ8319ECZJwOybJs5SrcnpjB8sc9diRBrPJRrGyPnzkKdOHZcHSNDw2Cwm3Ohz4Ebf0FnJ9lAkcfR21Ylm9MY0mE0aBAH4n6MXDJ9tvKodmbt27UJZWRmWLVuGbdu2JcVPnjyJRx55BKWlpXjxxRcRi8Wue6LXQygcxZa/nUSX0mt0KlmFdUmNdUnGmqTGuqTW0RXBnkPncJPPAas88eYo5MJCOBYuAgBELlzAxfe2wP+fWxE5fx56LAa972olREB8VtLttGJ2sRsLZnkQCsfgdduQl2uBRZZQWXPR8J8xab+L/X4/Nm7ciE8//RSyLGPNmjVYvHgxZsyYkXjMc889h5dffhnz58/H+vXrsX37djz22GMZTXwksm1vQLZgXVJjXZKxJqmxLqnt/OYsOsNR9PaqRqdiOLmoCO6yleg4sB8X39uSuH/Kn/4Mk8OJzspv0PltFQRJgiCZAEmEIEnw/f4piLKM0JHDUGpPD8TFeNy98u8hCALCp04i2twMwTTo+WYZjjsXAAAijeehdnX1xSQIkghRliEXTQYAqKEQdE0dFB/4otF3uWtyGz3bmLZprKysxJIlS+ByuQAApaWl2L17N5555hkAwIULF9DT04P58+cDAB5++GFs3rw565rGUDiKr79vhkWWsP/oBRTm22GzZP9fvq42Be0dSsZePxyJYf/RC2OuLpl2veuS6XEcDRP9s3K5MZzodbmccCSGQz8EIEkifmzsQJfSa/h+LCMJogjHgoXIuX0uumuqoSkKdFWDKMeXrk0FBbDNvAW6qgKqCl1VoWsahL7L2emxXqjd3UAsFo+pKqDriaVupa4WXceOAoNmL0WrNdE0dh6sQvjkD0NykhxOTP3TnwEArbt2QjlTNyRuLijA5H+L/64PfPgBIk1NEEymeDMpSpCLilDw8Or48//6OWIdHUOaTbOvEHl33wMA6Pj6f6FFI0PipvwC2G+ZBQAIn/wBuqYBg5buTXkuWKZMGYgPem/mPBuiohVy0WTomobwqZNJNTfnF0D2+aDHYgj/eDopLnu8MHs80KJRKHW1yXFfIcz5+dB6eqDUn0mKWyZPhsk1CWo4jJ6Gs8nxqTfA5HRC7epCz7mfkuLWG2+ClJuLWGcnIo3nh8Tqa9uhqld/Te7RkvYnWyAQgMfjSdz2er2orq6+bNzj8cDv9w8rifz83GE9fiT2f3UaSlRFNKpC1TR8tK8WbufYPsns9RDs7EEoHIUkiqzLIKxLMtYkNdYltWBnD6IxFc4cCwRRwHc/tuDRB2cZnRYAwONxpH9QxjiAqQ8k3+1ZCNy98LLP8qxcDqxcfvn4k7+Frj8GaBp0VYXW11yaHfH3mrfmYajhFdDVWDwWU+OXSOyrhXXFg4i2LYwvm6vxuGSzIb+/VvPnIjK1KN6w9r227J6UqKVikRARNOi9vdCUXuiqBnOuNRFvPX0C0WAQWmxg1tk173Z4+t5zzaYvEAsP/aPMfdcCeObfCgCo/o8dQ57bDqDgnqXwzJsFLRZD9c5Pk2ri++X98Nw+A7HubjSliBeVlcIz52ZEWoNoThGf8ptfw3NrMZTm7pTxG9f8A9wzb0R3QysupogX//6f4Jo+BaFgc8r4zf/8BzinFaG9uQH+n8UfATCz4t+RU1yc9DwjpW0aU+25GLyJN138arS2dkHTMre3IxSOYu+355CXY4ZuN0PVdMRiGtY+OBM51uz+yzffnYPWYHdGXrtb6cXbO2pQ4LJBEoUxVZdMykRdMjmOo4GfldRjyLqkNrguFpMIVdex99tzuOsWj+GzjR6PAy0txs7WjKqe/vdqAuTkZlnpr8WkwvhXHwGABgzUas58pDr+uz9uW1aOVCcW6o/n/+FfAfT1DH2N7eC4+3dPJu7rJ1qsA89/4o9DYvnuHLSHNbS0hKBrGjx//Jek/1uw2a8Y1+058XhMSBlXc3LjcVhSxqO58c+SJjtSxiMOZzye404ZV3LzEGkJQXMXpYx3yQ6ER/mzKorCFSfy0jaNPp8Phw8fTtwOBALwer1D4pcuXUrcbmlpGRLPBj/fG2CSAFXVcKI+mPX7jzz5OZA0LSOv/dcf/BAEwGKO71kZS3XJpEzUJZPjOBr4WUk9hqxLaj+viyQIWbEfi4wnCEJiz+RgZveVr0kue4b2FVaPA1JfQyWIYlJ8yP+ZLm4yXVNcNMtXjlss1xTPJmmPnl66dCmqqqoQDAahKAr27NmDkpKSRHzKlCmwWCw4cuQIAGDHjh1D4tngJ38ImhbfG9D/pWm64XsDjMa6pMa6JGNNUmNdUmNdiMYnQb+KY/537dqFd955B729vVi9ejXWrVuHdevWoaKiAnPnzsWpU6ewYcMGdHd3Y86cOXj11Vchy1d/5v9ML0+PZRNuKWWc4jiOfRzD8YHjOD5wHDMj3fL0VTWNmcam8fL4jTE+cBzHPo7h+MBxHB84jpmRrmm8qpN7ExEREdHExqaRiIiIiNJi00hEREREaWXFZQtEkRdvvxLWZ3zgOI59HMPxgeM4PnAcr790Nc2KA2GIiIiIKLtxeZqIiIiI0mLTSERERERpsWkkIiIiorTYNBIRERFRWmwaiYiIiCgtNo1ERERElBabRiIiIiJKi00jEREREaXFppGIiIiI0mLTOEZs2rQJb775ptFp0DDt2rULZWVlWLZsGbZt22Z0OjRCXV1dWLlyJRobG41OhUborbfeQnl5OcrLy/H6668bnQ6N0KZNm1BWVoby8nK8++67Rqcz4bBpzHKhUAjr16/H1q1bjU6Fhsnv92Pjxo348MMPsXPnTnz88ceoq6szOi0apuPHj2Pt2rVoaGgwOhUaocrKSnz99df47LPPsGPHDpw4cQJ79+41Oi0apkOHDuHgwYP4/PPP8cknn+CDDz5AfX290WlNKGwas9y+fftQXFyMJ5980uhUaJgqKyuxZMkSuFwu2O12lJaWYvfu3UanRcO0fft2vPTSS/B6vUanQiPk8XjwwgsvQJZlmM1mTJ8+HU1NTUanRcO0aNEivP/++zCZTGhtbYWqqrDb7UanNaGYjE6ArmzVqlUAwKXpMSgQCMDj8SRue71eVFdXG5gRjcQrr7xidAp0jWbOnJn4d0NDA7744gt89NFHBmZEI2U2m7F582Zs3boVDz30EHw+n9EpTSicacwSX375JUpKSoZ8PfHEE0anRddA1/Wk+wRBMCATIgKA2tpaPPXUU3j++edRXFxsdDo0QhUVFaiqqkJzczO2b99udDoTCmcas8SKFSuwYsUKo9Og68jn8+Hw4cOJ24FAgEucRAY5cuQIKioqsH79epSXlxudDo3AmTNnEI1GMXv2bNhsNixfvhynT582Oq0JhTONRBmydOlSVFVVIRgMQlEU7NmzByUlJUanRTThNDc34+mnn8Ybb7zBhnEMa2xsxIYNGxCNRhGNRrFv3z4sWLDA6LQmFM40EmWIz+fDs88+i8cffxy9vb1YvXo15s2bZ3RaRBPOli1bEIlE8NprryXuW7NmDdauXWtgVjRc9913H44fP45Vq1ZBkiQsX76cfwSMMkFPtfGKiIiIiGgQLk8TERERUVpsGomIiIgoLTaNRERERJQWm0YiIiIiSotNIxERERGlxaaRiIiIiNJi00hEREREabFpJCIiIqK0/h9nVmJqd5VNkQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pyod.models.iforest import IForest\n",
    "\n",
    "test_outlier_detector(\n",
    "    X_train, y_train, X_test, y_test, \n",
    "    only_neg=True, basemethod=IForest(contamination=0.01),\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "0imFEcDytS1Z"
   },
   "source": [
    "Many implementations for outlier detections are publicly available for python:\n",
    "\n",
    "* As part of Numenta's [Cortical Learning Algorithm](http://nupic.docs.numenta.org/stable/guides/anomaly-detection.html#temporalanomaly-model)\n",
    "* [Banpei](https://github.com/tsurubee/banpei) - singular spectrum transformation\n",
    "* [Deep Anomaly Detection Methods for Time Series](https://github.com/KDD-OpenSource/DeepADoTS)\n",
    "* [Telemanom](https://github.com/khundman/telemanom) - LSTMs for multivariate time-series data\n",
    "* [DONUT](https://github.com/haowen-xu/donut) - Variational Auto-Encoder for Seasonal KPIs\n",
    "\n",
    "A fantastic resource for [material about outlier detection](https://github.com/yzhao062/anomaly-detection-resources) is the PyOD author's dedicated repository.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "QrOU8_XBxIbh"
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "cg872AbAwwCb"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "name": "Outlier Detection",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
